Jenkins + Maven プラグインの質問: スナップショット依存関係の新しいバージョンによってビルドがトリガーされたときに Jenkins に「mvn test」を実行させたいのですが、SCM の変更によってビルドがトリガーされたときに「mvn deploy」を実行します。これを行う方法がわかりません。
裏話: 独自の ant + ivy + jenkins ビルド システムがあり、Maven に移行することがどれほど実用的かを理解しようとしています。一般的なセットアップ:
数十のJavaプロジェクトがあり、それらの間にかなり複雑な依存関係チェーンがあります(ほとんどすべてのプロジェクトは、活発に開発されているいくつかの汎用ライブラリに依存しています)
すべてのプロジェクトは、スナップショット ビルドとして Ivy リポジトリにデプロイされます。内部プロジェクトに依存するすべてのプロジェクトは、そのプロジェクトの現在のスナップショット バージョンに依存します。
プロジェクトにソースの変更がある場合、jenkins は SCM の変更を取得し、新しいスナップショット バージョンをデプロイします。
アップストリーム プロジェクトが新しいスナップショットをビルドしてデプロイすると、Jenkins はすべてのダウンストリーム プロジェクトでテストを実行しますが、デプロイはしません。これは、ダーク アント マジックによって行われます。
Jenkin の maven プラグインを使用して最後のポイントを複製するのに苦労しています。開発者は 1 日のほとんどを新しいスナップショット バージョンのダウンロードに費やすため、ビルドごとに新しいスナップショットを展開することはできません (一部のアップストリーム プロジェクトは非常に活発に開発されているため、各プロジェクトは 1 日に数十回ビルドされます)。
Jenkins の Maven プラグインを構成して、SCM の変更と依存関係の変更で異なる目標を実行する方法について何か考えはありますか?