私は Jenkins をよく使用し、クラスター上でさまざまなジョブを実行しています。時々、ジョブが不明瞭なエラーで失敗し、ジョブ A がアーティファクト X を使用しており、ジョブ B がその新しいバージョンをダウンロードまたはビルドしたばかりであるという事実にこれをデバッグすることができました (maven を使用)。 .
ジョブ A は java.lang.NoClassDefFoundError で失敗するか、ZIP ファイルが破損している、または Java が使用している ZIP 実装からの segfault で失敗します。
したがって、明らかな解決策は、ジョブにプライベートなローカル Maven リポジトリを使用することですが、これはかなりディスクとインターネットの費用がかかる解決策です。これは、各ジョブの maven がインターネット全体をダウンロードすることを意味します。
場合によっては、破損した JAR ファイルからクラス ファイルを熱心にロードすると、多くの場合、損傷を制限するのに役立ちますが、すべてに対してそうしたくはありません。
他の解決策はありますか?リポジトリのロックが改善されましたか?