我们的maven项目都建立在jenkins之上,然后将工件部署到maven存储库。
出于某种原因,在构建一个与刚刚构建的其他项目有依赖关系的项目时,似乎存在某种缓存或更新延迟。
假设工件A和B中有一个错误取决于A.现在我在本地修复错误,在B中更新我的依赖关系,运行B,一切都很好。我明显检查了。现在我在Jenkins上建立A,之后是B.然后我得到新建的B并运行它。这个bug仍然存在。几小时后,如果我再次建立B,它将会得到新的A并且错误消失了..
所以必须有办法迫使詹金斯在其服务器上使用新的A.使用mvn -u
或mvn --update-snapshots
无济于事。它将检查更新并找不到..
答案 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使用的其他存储库中,您可能遇到问题。