解决IDEA使用jetty跑项目js、css文件被占用无法修改的问题

用IDEA开发web项目使用maven的jetty插件跑的时候经常遇到项目启动后,无法编辑js文件和css文件。
最初以为是Idea的问题,但是这么严重的一个问题怎么就没有人注意呢?
后来又上网查了好多资料,原来才发现不是IDEA的问题,是jetty本身的问题:原因是如果NIO被支持的话,Jetty会使用内存映射文件来缓存静态文件,其中包括.js文件。在Windows下面,使用内存映射文件会导致文件被锁定。
解决方案是不使用内存映射文件来做缓存。

到maven本地仓库的org/eclipse/jetty/jetty-webapp/下,找到对应版本的jetty插件修改webdefault.xml
将:


    useFileMappedBuffer
    true

改为:


    useFileMappedBuffer
    false

即可搞定!
也可以将此文件拷贝到项目中,在jetty插件配置中引入:


  org.mortbay.jetty
  jetty-maven-plugin
  7.5.1.v20110908
  
    
      
        8088
        60000
      
    
    
      
        org.eclipse.jetty.util.URI.charset
        UTF-8
      
    
    
      src/main/resources/webdefault.xml
    
  

你可能感兴趣的:(解决IDEA使用jetty跑项目js、css文件被占用无法修改的问题)