BUG描述
在用maven开发时使用了jetty插件进行测试,在做web开发的时候,发现一旦修改css文件,IDEA就会出现以下错误提示。
Cannot delete temporary file D:\IdeaProjects\bookshop\bookshopmainprogram\src\main\webapp\css\jsp\user.css___jb_old___.
之后就会生成一个文件在原有css文件目录下。
解决方法
出现该bug之后在网上寻找解决方法
https://blog.csdn.net/hynet/article/details/8646644
我是参考这篇文章解决的。问题主要是因为jetty使用了内存映射文件来缓存静态文件,但是在windows下使用内存映射文件会使得文件被锁定,所以可以通过配置jetty,让他不使用内存映射文件。
由于版本有差异,所以配置jetty取消内存映射文件的步骤有略微不同。
以下是我的插件版本
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.11.v20180605</version>
</plugin>
我在.m2\repository\org\eclipse\jetty\jetty-webapp\9.4.11.v20180605路径下找到了jetty-webapp-9.4.11.v20180605.jar的jar包,然后解压后修改了在\org\eclipse\jetty\webapp下的webdefault.xml文件。将useFileMappedBuffer的值改为false。
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value>
</init-param>