Jenkins CIシステムを初めてセットアップするときに、スナップショットの依存関係とローカルのMavenリポジトリをどのように処理するのか疑問に思います。
依存関係Yを持つアーティファクトXがあります。Jenkinsは、YがコミットするたびにXをビルドするように構成されています。
戦略A(ワークスペースMavenリポジトリー):
ローカルMavenリポジトリーは「ワークスペースに対してローカル」になるように構成されています。これは、ビルドされたすべてのジョブに独自のリポジトリがあることを意味します。Yのコミットはビルド(「mvnclean install」)をトリガーしますが、ビルドXとYのリポジトリーは分離されているため、Xは最後のコミットではなく最後にデプロイされたバージョンのYを使用します。
この戦略を使用すると、すべての依存関係もデプロイされているかどうかを検出するのに役立つように見えますが、統合の問題は検出されません(Yコミットが壊れてXが壊れます)。
戦略B(共通のMavenリポジトリ):
Jenkinsは共通のローカルMavenリポジトリを使用します。(壊れた)Yスナップショットのコミットは、現在のYスナップショットを使用するXのビルドをトリガーし、統合の問題が検出されます。欠点は、すべてのビルド依存関係が中央スナップショットリポジトリにデプロイされているかどうかを検出しないことです(CIシステムではすべてがローカルリポジトリにインストールされているため)。
AとBの両方の利点を組み合わせた戦略はありますか?