Maven+Jetty免静态资料死锁的处理
Maven+Jetty免静态文件死锁的处理
在网上找了半天,包括官网,有类似的解决方案,但可能是因为版本的原因我一直未能实验成功。
经仔细的分析和查看结果,在成功之后特地记录如下:
1、如果不指定maven的jetty版本,则通过artifactId会自动分辨并下载:如为jetty-maven-plugin,则当前最新为7.0.1.v20091125,如为maven-jetty-plugin,则为6.1.19;
2、要解决静态文件锁定问题,需要修改$maven_repo$\org\eclipse\jetty\jetty-webapp\7.0.1.v20091125\jetty-webapp-7.0.1.v20091125.jar\org\eclipse\jetty\webapp\webdefault.xml文件,很多文章模棱两可的说会造成误会。有两种办法:一种是直接拉出来修改了再放回去,另一种是单独拉出来配置为自己的文件。修改点都很简单,把useFileMappedBuffer的值从true改为false即可。对于pom增加plugin的配置,我成功的配置如下:
<!-- jetty plugin configuration --> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <configuration> <webAppConfig> <defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor> </webAppConfig> </configuration> </plugin>
3、这样查看:在输入了mvn jetty:run后,会看到列出很多信息,其中可以看到如下信息,可确保配置正确:
[INFO] Context path = /
[INFO] Tmp directory = D:\project\buffalo-branches-json\buffalo-demo\target\tmp
[INFO] Web defaults = src/main/resources/webdefault.xml
[INFO] Web overrides = none
当然了,最直接的方法就是跑起来后再修改看看,这时候可以实时修改html/css/js等静态文件了。