【问题标题】:Jenkins disable or clear cache for maven buildsJenkins 禁用或清除 Maven 构建的缓存
【发布时间】:2012-07-30 04:31:41
【问题描述】:

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

然而,由于某种原因,在构建一个依赖于其他刚刚构建的项目的项目时,似乎存在某种缓存或更新延迟。

假设工件 A 中存在错误,并且 B 依赖于 A。现在我在本地修复错误,更新 B 中的依赖项,运行 B,一切都很好。很明显,我签到了。现在我在 Jenkins 上构建 A,然后在 B 上构建。然后我得到新构建的 B 并运行它。错误仍然存​​在。几个小时后,如果我再次构建 B,它会得到新的 A 并且错误消失了..

所以必须有一种方法可以强制 jenkins 在其服务器上使用新的 A。使用 mvn -umvn --update-snapshots 将无济于事。它会检查更新但没有找到..

【问题讨论】:

  • 如果为快照存储库配置了<updatePolicy>,您能否检查一下您的 Maven settings.xml?如果没有,SNAPSHOT 版本每天只能从远程存储库下载一次。 maven.apache.org/ref/3.0.4/maven-settings/…

标签: caching maven dependencies jenkins


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2022-11-28
    • 2011-03-05
    • 2017-02-02
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多