最近刚接触IDEA编辑器进行开发,后端项目是用jetty部署的,作为一个前端在编辑js文件运行的时候就遇到了新的问题,使用ctrl+s
无法快捷保存文件,并且浏览器中加载的文件还是旧的,问题描述如下:
原因:
jetty本身的问题,如果NIO被支持的话,Jetty会使用内存映射文件来缓存静态文件,其中包括.js文件。在Windows下面,使用内存映射文件会导致文件被锁定。
解决办法:
修改maven本地仓库的org/eclipse/jetty/jetty-webapp/下,找到对应版本的jetty插件修改webdefault.xml即可
- step1:如何找到maven本地仓库
默认情况下,Maven本地库为系统当前用户目录下的.m2文件夹下,缺省路径为:${user.home}/.m2/repository
可以在命令行运行:mvn help:effective-settings
:
其中黄色框圈出的<localRepository>标签中的即是
也可以查看项目的Run/Debug Configurations -> General -> local repository
- step2:修改org/eclipse/jetty/jetty-webapp/目录下对应版本的jetty文件的webdefault.xml文件
webdefault.xml一般存在于如下黄框圈出的jar包中,使用winrar可以打开并编辑
修改jetty jar里面的 webdefault.xml 的useFileMappedBuffer为false即可搞定!
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value>
</init-param>
```