如何使 maven+jetty运行时不锁定文件

转载 2016年06月01日 15:05:26

maven+jetty运行时会自动缓存js、css等静态文件,导致项目运行时不能修改js文件的情况, Error:Save could not be completed

转自:http://zhaoshg.iteye.com/blog/919285
原因是Jetty会使用内存映射文件来缓存静态文件,其中包括js、css文件。在Windows下面,使用内存映射文件会导致文件被锁定。解决方案是不使用内存映射文件来做缓存。步骤如下:

1)在所使用Jetty版本的jar中找到webdefault.xml,把它拷贝到项目中,比如src/main/resources/webdefault.xml。
对jetty6,jar文件在$maven_repo$/org/mortbay/jetty/jetty/6.x/jetty-6.x.jar,webdefault.xml文件在包org\mortbay\jetty\webapp里;
对jetty7,jar文件在$maven_repo$/org/eclipse/jetty/jetty-webapp/7.x/jetty-webapp-7.x.jar\,webdefault.xml文件在包org\eclipse\jetty\webapp里。

注:可能需要对该jar包解压,才能看到webdefault.xml文件

2)复制webdefault.xml文件,将其放在src/main/resources目录下,找到webdefault.xml文件里的useFileMappedBuffer参数,把值设成false。

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

<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.x</version>
<configuration>   <webDefaultXml>src/main/resources/webdefault.xml</webDefaultXml>
</configuration>

jetty7:

<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.x</version>
<configuration>
    <webAppConfig>
        <defaultsDescriptor>src/main/resources/webdefault.xml</defaultsDescriptor>
    </webAppConfig>
</configuration>

这样在运行时就可以修改js、css等文件了。
修改后eclipse控制台会输出如下信息:[INFO] Web defaults = src/main/resources/webdefault.xml

原文:http://rongjih.blog.163.com/blog/static/335744612010620341622/

关于Jetty锁定静态文件的问题解决办法

Jetty是一个优秀的Web服务器,最大的特点是可嵌入应用程序,因此作为调试服务器非常方便,就像跟踪普通的main()方法一样可以在Eclipse中直接调试Web应用而无需远程连接。但是使用Jetty...
  • yuanfen860913
  • yuanfen860913
  • 2015年09月07日 17:03
  • 846

maven项目用jetty启动没有问题 用tomcat启动的时候报错

Eclipse中Maven项目无法在Tomcat中运行  1. 出现ClassNotFound异常  看看异常信息,都是Maven依赖包中的类,项目->属性->Deployment Assembly-...
  • qq_16055765
  • qq_16055765
  • 2016年06月13日 14:43
  • 2848

关于在maven下使用jetty打成war包,发布到tomcat报错找不到文件问题

笔者在maven下使用jetty把项目打成war包,发布到tomcat服务器上运行,报错找不到文件路径!后来才发现笔者在项目中写的路径如下: public static final String TE...
  • u012759397
  • u012759397
  • 2017年10月19日 11:46
  • 154

C# 实现文件锁

---转载:http://chenhailong.iteye.com/blog/1138711深表感谢。 using System; using System.Collections.Generic;...
  • s5260203
  • s5260203
  • 2011年08月12日 08:52
  • 1251

Maven+jetty锁定js,css问题

1.在你使用的Jetty版本的jetty.jar中找到webdefault.xml,它在jar文件中的路径是org/mortbay/jetty/webapp/webdefault.xml。把它拷贝到项...
  • Truong
  • Truong
  • 2014年03月07日 18:23
  • 1356

Tomcat Jetty容器中部署项目的注意事项与区别

Tomcat Jetty容器部署注意事项
  • linyiheng123
  • linyiheng123
  • 2017年03月07日 10:32
  • 777

Jetty与tomcat部署web项目的区域

Jetty简单部署的demo,转载自:http://lijingshou.iteye.com/blog/2016207 (原始方式)Servlet 客户端 HTTP 请求:http://www....
  • ling125521
  • ling125521
  • 2016年11月15日 09:55
  • 767

写了个判断文件是否被锁定的函数 --- 有用!

今天在工程中要用到这个功能,把它写出来,如果你有用得着的地方,直接Ctrl+C去,呵呵.函数如下:bool IsFileLocked(LPCTSTR szFileName){ if(szFileNam...
  • tanaya
  • tanaya
  • 2004年09月03日 14:30
  • 2459

ANDROID应用中怎样使屏幕不自动锁定

在ANDROID应用中,为了使应用一直保持屏幕不自动锁定的状态,我们需要用到所谓的Wake Lock。 为了使用Wake Lock,我们首先需要在AndroidManifest.xml配置文件里面增加...
  • snowolf_538
  • snowolf_538
  • 2011年07月21日 21:56
  • 3409

关于Jetty锁定静态文件如JS,css外联文件的问题解决办法.;修改后不需要每次重启jetty服务器.适合window系统

看了廖永峰和其他大神的文章,自己实践了下,发现的确可行,所以将方法拿出来供大家参考. 用windows系统操作前端时,修改js文件后,需要将jetty服务器重启才能生效.不重启的话会报一个无...
  • u014721697
  • u014721697
  • 2018年01月14日 17:58
  • 41
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何使 maven+jetty运行时不锁定文件
举报原因:
原因补充:

(最多只允许输入30个字)