gpt4 book ai didi

java - 如何在 Jenkins 上处理并发 Maven 构建?

转载 作者:搜寻专家 更新时间:2023-10-31 20:12:26 25 4
gpt4 key购买 nike

我经常使用 Jenkins,集群上运行着许多不同的作业。时不时地,一项工作会因一些模糊的错误而失败,我已经能够将其调试为这样一个事实,即工作 A 正在使用 Artifact X 而工作 B 刚刚下载或构建了它的新版本(使用 maven) .

作业 A 因 java.lang.NoClassDefFoundError 或其他原因而失败,ZIP 文件已损坏或来自 Java 正在使用的某些 ZIP 实现的段错误。

因此,显而易见的解决方案是为作业使用私有(private)本地 maven 存储库,但这是非常昂贵的磁盘和互联网解决方案。这意味着每个工作的专家将下载整个互联网。

在某些情况下,从损坏的 JAR 文件中预先加载类文件通常可以帮助我们限制损坏,但我们不想对所有内容都这样做。

还有其他解决方案吗?某种改进的存储库锁定?

最佳答案

是的,看起来 Maven 不喜欢并发访问单个本地存储库(最近打开了一个 issue,就在 7 年前)。为每项工作创建 repo 协议(protocol)可能非常庞大。但是,有一个变量 $EXECUTOR_NUMBER,因此您可以使用它为每个 Jenkins 执行程序创建 maven 本地存储库。

关于java - 如何在 Jenkins 上处理并发 Maven 构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19219336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com