你如何清除Apache Maven的缓存?

Met*_*002 188 apache maven

最近,Apache Maven似乎有缓存问题.使用Windows Vista或Windows 7在我们的项目上执行全新安装有时会生成与先前版本具有相同数据的工件,即使新工件的文件应该已更新.

有没有办法清除此缓存以强制maven始终触发应该构建的本地工件的干净构建?

特别是,我们在使用war插件构建webapp时遇到了问题.Maven版本是3.0.3.战争插件版本是2.1.1.

pal*_*int 201

c:\Users\<username>\.m2\repository手动删除工件(或完整的本地存储库).

  • @ liltitus27在这里一样,只是擦掉了〜/ .m2/repository没有用,`mvn依赖:purge-local-repository`终于工作了 (7认同)
  • 试过已经,没有用.(还是)感谢你的建议. (4认同)
  • 似乎,即使在重新启动之后,很多maven工件都会对它们进行处理:`操作无法完成,因为其中的文件夹或文件在另一个程序中打开.关闭文件夹或文件,然后重试 (3认同)
  • 请注意,文件夹位置可能因系统而异 - 请参阅[此答案](http://stackoverflow.com/a/16218772/245966)了解如何获取 Maven 存储库文件夹路径 (2认同)

Bri*_* C. 163

要清理本地缓存,请尝试使用依赖项插件.

  1. mvn dependency:purge-local-repository:这是尝试删除本地存储库文件,但它总是在删除后删除本地存储库.
  2. mvn dependency:purge-local-repository -DreResolve=false:这可以避免重新解析依赖关系,但有时似乎仍然会进入网络.
  3. mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false:这是由PawełPrażak添加的,似乎效果很好.如果你想要本地repo清空,我会使用第三个,如果你只想丢弃本地repo并再次获取依赖项,我会使用第一个.

  • 第一种是尝试删除本地存储库文件,但它总是会在删除后删除本地存储库.第二个避免重新解析依赖关系,但似乎仍然有时会进入网络.第三个由PawełPrażak添加,似乎运作良好.如果你想要本地repo清空,我会使用第三个,如果你只想丢弃本地repo并再次获取依赖项,我会使用第一个. (11认同)
  • 他们之间有什么区别? (4认同)

FrV*_*aBe 12

您是否已检查/更改了存储库中的updatePolicy设置settings.xml.

此元素指定更新应尝试发生的频率.Maven会将本地POM的时间戳(存储在存储库的maven-metadata文件中)与远程数据进行比较.选项包括:always,daily(默认),interval:X(其中X是以分钟为单位的整数)或从不.

尝试将其设置为always.


Rud*_*haw 11

我很惊讶还没有人提到它但是

mvn clean install -U
Run Code Online (Sandbox Code Playgroud)

-U标志告诉 Maven 在不使用本地缓存的情况下提取所有依赖项的新副本。

  • 这个命令帮助了我 (2认同)

lui*_*nal 9

我会做以下事情:

mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false --fail-at-end
Run Code Online (Sandbox Code Playgroud)

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

为了更好的衡量,忽略错误(--fail-at-end)直到最后.这有时对于那些具有一些混乱的依赖关系或依赖于有点混乱的内部存储库的项目很有用(它会发生).


vla*_*ror 8

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


Fel*_*lby 6

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

在/username/.m2目录中手动删除工件(如上面的palacsint所述)后,通过执行以下操作重新索引文件:

转到Windows-> Preferences-> Maven-> User Settings菜单.

单击"本地存储库"文本框旁边的"重新索引"按钮.单击"应用",然后单击"确定",即可完成.