複数の Maven アーティファクトに分割された Web プロジェクトがあります。
だとしましょう:
- A、瓶
- B、瓶
- C、瓶
- D、戦争
したがって、D は B および C に依存しています。B は A に依存しています。
これらのモジュールのバージョンは常に同期しているわけではありません。
A はバージョン 3-SNAPSHOT を使用できますが、B はまだバージョン 5 であり、A バージョン 2 に依存しています。
AがビルドされたときにビルドBをカスケードし、BまたはCがビルドされたときにDをカスケードするようにjenkinsを構成しました。これらのモジュールは、git リポジトリで変更が検出されると再構築されます。アーティファクトは、ビルド後のアクションによって nexus リポジトリに自動的にデプロイされます。
したがって、A の新しいバージョン 3-SNAPSHOT を git にプッシュすると、3-SNAPSHOT jar が構築され、nexus にプッシュされます。ただし、Jenkins の依存関係により、B バージョン 2 (リリースバージョン) の新しいビルドがトリガーされます。ビルド自体は問題ありませんが、リリース アーティファクトの再デプロイを許可していないため、nexus へのデプロイは失敗します。
どうすればこの状況を回避できますか? アーティファクトにリリース バージョンがあり、このバージョンがすでに nexus に存在する場合、nexus にアップロードしないことは許容されます。
Jenkins 1.480 と maven 3.0.4 を使用しています。