3

複数の 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 を使用しています。

4

1 に答える 1

0

https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Trigger+Pluginでパラメーター化されたビルドをトリガーし、ジョブ B にパラメーターを追加できます。

条件付きビルド プラグインも役立つかもしれませんhttps://wiki.jenkins-ci.org/display/JENKINS/Conditional+BuildStep+Plugin

于 2013-04-24T09:18:23.013 に答える