私は、Maven で構築された Java プロジェクトを持っています。これは、いくつかのコンポーネントを集約し、それぞれが独自の Maven プロジェクトに含まれています。これらのコンポーネントのいずれかが個別に進化する可能性があります。
私のプロジェクトの構造は次のように説明できます。
- 以下に依存する my-main-project:
- 私のコンポーネント-1
- 私のコンポーネント-2
- 等
現在、すべての pom.xml は「スナップショット」バージョンを使用しているため、リポジトリで利用可能な「最新」バージョンを使用しています。
しかし、リリース バージョンを顧客に送信したら、バージョンを凍結し、ソース管理で TAG (または同等のもの) を作成して、メンテナンスの場合に以前の状態を復元できるようにする必要があります。
ですから、私の質問は、各リリースの前にすべての pom.xml ファイルを変更し、コンポーネントにバージョン番号を付けて、すべてをこの依存関係のバージョンに関連付けるべきですか? また、多くのコンポーネントがある場合 (私のプロジェクトには現在 30 以上の小さなサブコンポーネントがあります)、各リリースの前にそれぞれの番号を付け直す/元に戻す必要がありますか? 1 つのコンポーネントが (バグ修正または機能強化のために) 進化する場合、その変更が既存のリリースに影響を与えないように、そのバージョンを増やす必要がありますか?
maven を使用している人々は、通常、この多くのコンポーネントのバージョン管理のケースをどのように処理していますか?
もちろん、バージョン管理タグに頼って以前の特定の時点に復元し、リリースごとにすべてのコンポーネントにタグを付けることができますが、依存関係のバージョン管理 (maven を使用) により、パッケージ化されているもの、および (壊れた) 互換性の関係などについて、より多くの制御と可視性を得ることができます。