为什么Maven在多线程构建中在本地存储库中持久存在损坏的依赖jar?

时间:2017-05-05 00:15:34

标签: maven jenkins maven-3 maven-dependency-plugin maven-dependency

我经常遇到以下错误

[BuilderThread 4] [WARNING] error reading /opt/jenkins/maven-repositories/0/com/fasterxml/jackson/core/jackson-annotations/2.8.0/jackson-annotations-2.8.0.jar; zip file is empty

丢失/损坏的jar文件因故障而异。

快速解决方法是清理存储库并重新运行构建。但是,当你在几个jenkins盒子上有大量的构建时,这是不可控制的。

我想知道为什么会发生这种情况,是否有解决方法?我使用的是Maven 3.3.9。

----------更新

我可能找到了根本原因:'多线程'建立。构建使用-T1C运行。我看到以下与腐败jar有关的日志声明。

[Builder Thread 0] Downloading ... jackson-annotations-2.8.0.jar
[Builder Thread 7] Downloading ... jackson-annotations-2.8.0.jar
[Builder Thread 3] Downloading ... jackson-annotations-2.8.0.jar
...
[Builder Thread 1] [WARNING] error reading ......jackson-annotations-2.8.0.jar; zip file is empty

下载依赖项是Maven中不可或缺的组成部分。我希望它是多线程安全的。如果-T未通过,构建似乎不会失败。

我想了解如何解决这个问题。有没有办法告诉Maven先获得依赖关系然后启动多线程'以詹金斯为基础?

0 个答案:

没有答案