使用Maven + Jetty时,如何不锁定js css 静态资源
Jetty会使用内存映射文件来缓存静态文件,包括js,css文件。
在Windows下,使用内存映射文件会导致文件被锁定,所以当Jetty启动的时候无法在编辑器对js或者css文件进行编辑。
解决办法是更改Jetty默认配置,不适用内存映射文件来做缓存。
解决步骤如下:
1. 找到webdefault.xml,
我以6.x版本为例,jetty-6.jar在$maven_repo$/org/mortbay/jetty/jetty/6.x/jetty-6.x.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>