使用Maven + Jetty时,如何不锁定js css 静态资源
Jetty会使用内存映射文件来缓存静态文件,包括js,css文件。
在Windows下,使用内存映射文件会导致文件被锁定,所以当Jetty启动的时候无法在编辑器对js或者css文件进行编辑。
解决办法是更改Jetty默认配置,不适用内存映射文件来做缓存。
解决步骤如下:
1. 找到webdefault.xml,
我以6.x版本为例,jetty-6.jar在
webdefault.xml文件在包org\mortbay\jetty\webapp下。
建议把webdefault.xml拷贝一个副本,在副本进行修改,并使用副本的配置,而不是去更改jar包里面的文件。
2. 修改useFileMappedBuffer参数的值为false
3.在pom.xml中指定使用修改过的webdefault.xml
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.26</version>
<configuration>
<contextPath>/ossweb</contextPath>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8080</port>
</connector>
</connectors>
<webDefaultXml>src/main/resources/webdefault.xml</webDefaultXml>
</configuration>
</plugin>
</plugins>