最近,Apache Maven似乎遇到了缓存问题。使用Windows Vista或Windows 7在我们的项目上执行干净安装,有时会产生具有与以前构建相同数据的工件,即使较新的工件的文件应该已经更新。

有没有办法清除这个缓存,迫使maven总是触发应该构建的本地工件的干净构建?

特别是,我们在使用war插件构建web应用程序时遇到了问题。Maven版本是3.0.3。War插件版本为2.1.1。


当前回答

我会做以下几点:

mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false --fail-at-end

标志告诉maven不要尝试解析依赖项或攻击网络。删除您在本地看到的内容。

为了更好地衡量,忽略错误(——fail-at-end)直到最后。这有时对于依赖项集有点混乱或依赖于有点混乱的内部存储库(这种情况时有发生)的项目很有用。

其他回答

这里有一些命令可以用于清理

 1. mvn clean cache   
 2. mvn clean install 
 3. mvn clean install -Pclean-database

此外,从.m2中删除存储库文件夹也会有所帮助。

我会做以下几点:

mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false --fail-at-end

标志告诉maven不要尝试解析依赖项或攻击网络。删除您在本地看到的内容。

为了更好地衡量,忽略错误(——fail-at-end)直到最后。这有时对于依赖项集有点混乱或依赖于有点混乱的内部存储库(这种情况时有发生)的项目很有用。

若要清除本地缓存,请尝试使用依赖项插件。

mvn dependency:purge-local-repository: This is an attempt to delete the local repository files but it always goes and fills up the local repository after things have been removed. mvn dependency:purge-local-repository -DreResolve=false: This avoids the re-resolving of the dependencies but seems to still go to the network at times. mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false: This was added by Paweł Prażak and seems to work well. I'd use the third if you want the local repo emptied, and the first if you just want to throw out the local repo and get the dependencies again.

这适用于Spring Tool Suite v 3.1.0。RELEASE,但是我猜它也可以在Eclipse上使用。

在/用户名/。M2目录,重新索引文件,执行以下操作:

至:

Windows->首选项->Maven->用户设置菜单。

单击“本地存储库”文本框旁边的“重新索引”按钮。点击“应用”,然后点击“确定”,你就完成了。

使用mvn dependency:purge-local-repository - dacttransitive =false -Dskip=true如果你有maven插件作为模块之一。否则,Maven将尝试重新编译它们,从而再次下载依赖项。