SCM で次の Maven プロジェクトをセットアップしています。
- あ
- B(Aによる)
- C (A と B に依存し、A と B からのアーティファクトを含むアーカイブを構築します)
Jenkins を整理したので、A が実行され、次に B、次に C が実行される一連のジョブがあります。 )、および開発/テスト/運用サーバーにデプロイするビルドのセット (mvn クリーン インストール + デプロイするプラグインの実行)。
ジョブが同時に実行されると問題が発生します。例えば:
- C コミット ジョブが A コミット ジョブと同時に構築されている場合、A コミット ジョブがローカル m2 リポジトリに書き込みを行っている可能性があるため、C コミット ジョブはローカル m2 リポジトリからの読み取りに問題を起こすことがよくあります。
- Commit ジョブが Deploy ジョブと同時に実行されている場合、それらが同じローカル m2 リポジトリに対して書き込みおよび読み取りを行っていることが懸念されます。
理想的には、これらの一連のジョブを同時に実行できる機能を維持したいと考えています。
- 現在、アップストリーム ジョブの構築中にダウンストリーム ジョブの実行をブロックしています。これにより、いくつかの問題が回避されました。ただし、C がビルドの途中で、A がビルドを開始するという問題がまだ残っています。「上流プロジェクトのビルド時にビルドをブロックする」と「下流プロジェクトのビルド時にビルドをブロックする」の両方を有効にすることに関する既知の問題はありますか?
- 一連のジョブが同じ Maven リポジトリーを使用するように Jenkins を構成できますか? たとえば、コミット トリガー ジョブで 1 つのリポジトリを使用し、開発デプロイ ジョブには別のリポジトリを使用したいと考えています。これは私が望むものに対する正しい解決策ですか、それとも別の方法がありますか?