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>