最近,Apache Maven似乎有缓存问题.使用Windows Vista或Windows 7在我们的项目上执行全新安装有时会生成与先前版本具有相同数据的工件,即使新工件的文件应该已更新.
有没有办法清除此缓存以强制maven始终触发应该构建的本地工件的干净构建?
特别是,我们在使用war插件构建webapp时遇到了问题.Maven版本是3.0.3.战争插件版本是2.1.1.
pal*_*int 201
c:\Users\<username>\.m2\repository
手动删除工件(或完整的本地存储库).
Bri*_* C. 163
要清理本地缓存,请尝试使用依赖项插件.
mvn dependency:purge-local-repository
:这是尝试删除本地存储库文件,但它总是在删除后删除本地存储库.mvn dependency:purge-local-repository -DreResolve=false
:这可以避免重新解析依赖关系,但有时似乎仍然会进入网络.mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false
:这是由PawełPrażak添加的,似乎效果很好.如果你想要本地repo清空,我会使用第三个,如果你只想丢弃本地repo并再次获取依赖项,我会使用第一个.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 在不使用本地缓存的情况下提取所有依赖项的新副本。
我会做以下事情:
mvn dependency:purge-local-repository -DactTransitively=false -DreResolve=false --fail-at-end
Run Code Online (Sandbox Code Playgroud)
标志告诉maven不要尝试解析依赖关系或点击网络.删除您在本地看到的内容.
为了更好的衡量,忽略错误(--fail-at-end
)直到最后.这有时对于那些具有一些混乱的依赖关系或依赖于有点混乱的内部存储库的项目很有用(它会发生).
mvn dependency:purge-local-repository -DactTransitively=false -Dskip=true
如果您有 Maven 插件作为模块之一,请使用。否则 Maven 将尝试重新编译它们,从而再次下载依赖项。
这适用于Spring Tool Suite v 3.1.0.RELEASE,但我猜它也可以在Eclipse上使用.
在/username/.m2目录中手动删除工件(如上面的palacsint所述)后,通过执行以下操作重新索引文件:
转到Windows-> Preferences-> Maven-> User Settings菜单.
单击"本地存储库"文本框旁边的"重新索引"按钮.单击"应用",然后单击"确定",即可完成.
归档时间: |
|
查看次数: |
269791 次 |
最近记录: |