Jenkins禁用或清除maven版本的缓存

时间:2012-08-01 09:39:30

标签: caching maven dependencies jenkins

我们的maven项目都建立在jenkins之上,然后将工件部署到maven存储库。

出于某种原因,在构建一个与刚刚构建的其他项目有依赖关系的项目时,似乎存在某种缓存或更新延迟。

假设工件A和B中有一个错误取决于A.现在我在本地修复错误,在B中更新我的依赖关系,运行B,一切都很好。我明显检查了。现在我在Jenkins上建立A,之后是B.然后我得到新建的B并运行它。这个bug仍然存在。几小时后,如果我再次建立B,它将会得到新的A并且错误消失了..

所以必须有办法迫使詹金斯在其服务器上使用新的A.使用mvn -umvn --update-snapshots无济于事。它将检查更新并找不到..

1 个答案:

答案 0 :(得分:6)

我相信在Maven / Jenkins中不存在这样的缓存行为,因为所有快照都是在Jenkins的同一个实例中本地构建的。不需要“更新快照”选项,因为您没有从远程仓库获取它。但是,我建议您查看Jenkins中的存储库设置。在Jenkins中,我们可以更改要使用的maven存储库(默认情况下,它由整个机器共享,但可以更改为每个工作区或每个执行程序等。(在您的项目配置中,在Build -> Advanced中,您可以查看“Use private Maven repository”,在Manage Jenkins -> Configure System -> Maven Project Configuration中,您可以选择管理Local Maven Repository的方式。我怀疑您已将其更改为“本地执行者”

如果您有任何设置导致A的构建安装在B使用的其他存储库中,您可能遇到问题。