Maven+Jetty运行项目无法热修改html处理

今天在使用Maven+Jetty运行JavaWeb工程时,发现无法在运行状态下修改JS、HTML文件,即无法热修改,网上搜了一下,整合了很多文章最终搞定。

现象
此时在Eclipse中修改index.html文件时
不允许进行修改。
原因:如果NIO被支持的话,Jetty会使用内存映射文件来缓存静态文件,其中包括.js文件。在Windows下,使用内存映射文件会导致文件被锁定。解决方案是不使用内存映射文件来做缓存。(摘自参考文章)

1.在你使用的Jetty版本的jetty.jar中找到webdefault.xml,它在jar文件中的路径是org/eclipse/jetty/webapp/webdefault.xml。把它拷贝到项目中,比如src/main/resources/webdefault.xml。

此处我们使用的Jetty Plugin版本为:8.1.8.v20121106,对应的Jetty在(注意:不同的Jetty版本位置可能不一样)


如果不知道Jetty在哪直接运行一下项目就能看到所用的Jetty版本(jetty7之前是一个jetty包,7之后拆分为了多个,我们要使用的文件在jetty-webapp下)



2.找到useFileMappedBuffer参数,把值设成false



3.在pom.xml中,设置jetty使用更新过的webdefault.xml文件。


<defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>

这样就在运行时也可以修改js和css了。





亲测通过!
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值