我经常使用 Jenkins,并且在集群上运行了许多不同的作业。时不时地有一个工作因一些模糊的错误而失败,我已经能够调试这个事实,即工作 A 正在使用工件 X,而工作 B 刚刚下载或构建了它的新版本(使用 maven) .
作业 A 因 java.lang.NoClassDefFoundError 或 ZIP 文件损坏或 Java 正在使用的某些 ZIP 实现的段错误而失败。
因此,显而易见的解决方案是使用私有本地 maven 存储库来完成作业,但这是相当昂贵的磁盘和互联网解决方案。这意味着每个工作的专家都会下载整个互联网。
在某些情况下,从损坏的 JAR 文件中急切加载类文件通常可以帮助我们限制损坏,但不想对所有内容都这样做。
还有其他解决方案吗?存储库的某种改进锁定?