BUG描述
在用maven开发时使用了jetty插件,在做web开发的时候,一旦修改css文件或者HTML文件的时候,IDEA就会出现以下错误提示:
并且生成烦人的*.html__jb_old__文件
还不能删除。
问题主要是因为jetty使用了内存映射文件来缓存静态文件,但是在windows下使用内存映射文件会使得文件被锁定,所以可以通过配置jetty,让他不使用内存映射文件。 当你的jetty运行着的时候,idea不会让你去修改html或者css文件。当你关闭的时候,就能够修改了,并且可以删除.html__jb_old__*文件。但是这样要修改文件特别麻烦,效率太低。
解决方法
出现该bug之后在网上寻找了一些牛人的解决方法
https://blog.csdn.net/hynet/article/details/8646644
但是由于版本不同,在一些地方还得进行修改,而且步骤不是很详细。以下是我的修改办法。
以我的项目为例:打开pom.xml可以看到自己添加的依赖信息,顺着上面的信息,可以找到目标文件
我的项目放在G盘:G:/lock找到
G:\lock\org\eclipse\jetty\jetty-webapp\9.4.8.v20171121打开
使用压缩工具打开jetty-webapp-9.4.8.v20171121.jar
找到\org\eclipse\jetty\webapp下的webdefault.xml文件打开,将useFileMappedBuffer的值改为false。
修改完之后,进行保存。压缩工具会提示你,是否将文件并入压缩包,你选择是就行了。修改完成,以后就算jetty处于运行状态,你也可以修改html/css文件了。