変更されたアーティファクトのみを提供するJavaプロジェクトがありますが、同時に、変更されていないコンポーネントとこのリリースで変更されたコンポーネントの最新リリースバージョンを含む製品があります。Maven 3 を使用してビルドを行います。
6 つのコンポーネントに独自のリリース バージョンがある製品 1.1-SNAPSHOT (開発中であることを意味します) があるかどうかを見てみましょう。
今、次のような構造になっているとします。
- c1 - 1.0-SNAPSHOT
|- m1 - 2.0-SNAPSHOT
|- m2 - 3.0-SNAPSHOT
- c2 - 4.0-SNAPSHOT
|- m3 - 5.0-SNAPSHOT
|- m4 - 6.0-SNAPSHOT
ここで、c は親コンポーネント、m はモジュールです。バージョンはランダムに取得されます。m4 が m2 に依存するなど、いくつかの依存関係が存在する可能性があります。
m2 モジュールを更新し、それをリリースしたいとしましょう。どうすればそれができますか?m2 および m4 モジュールでのみ手動でリリース プロセスを開始しますか? 何をタグ付けするかという疑問も生じますか?リリースされたばかりのモジュールのタグ付けに使用される新しいリビジョンと、更新されていないモジュールのソースのリビジョンを含む製品全体である必要があると思います。
次に必要なのは、1.1 バージョンであり、製品の 1.0 のリリースから取得できる m1 (0.99 の場合もある) と m3 (4.99 の場合もある) の最新リリース バージョンを含む製品リリース パッケージを作成することです。それらは変更されませんでした。また、m2 (3.0 になります) と m4 (6.0 になります) のリリースされたばかりの新しいバージョンは、1.1 パッケージの一部である必要があります。それはどのように行うことができますか?
私が見る唯一の解決策は maven-version-plugin を使用することですが、その過程でいくつかのハック開発が必要です。
アイデアは、最小限のビルドを作成し、変更されたモジュールをリリースしたばかりにすることです。
これを自動的に行うために提供できるMavenは何ですか? Maven-release-plugin は、このレベルでは役に立ちません。変更されたばかりのコンポーネントをリリースするにはどうすればよいですか? このイデオロギーをサポートするために SNAPSHOT を使用する必要はないのではないかと考え始めました。
ありがとうございました。