個々のモジュールを構築し、親pomへの変更がローカルリポジトリにアップロードされるようにするためのMavenの方法は何ですか?
3つのモジュールがあるとしましょう:1つの親、2つの子(dbmod、appmod)
- 親:dependencyManagementはjdbc-foo1.5を定義します
- dbmod:依存関係はjdbc-fooが親からバージョンを取得することを定義します
- appmod:dbmodに依存します
状況
- 私は、jdbc-foo 1.5でparent-pomを取得し、jdbc-foo1.5とappmodを使用してdbmodを取得する親からビルドします。
- ソース管理と親pomの変更をjdbc-foo1.6に更新します
- dbmodディレクトリにビルドします
appmodディレクトリにビルドします
appmodはローカルリポジトリからdbmodをフェッチし、親pommavenの問題のローカルリポジトリバージョンを使用します。 dbmod:3.5.0の効果的なモデルの構築中に1つの問題が発生しました-SNAPSHOT "
コードがjdbc-foo1.6の変更へのアクセスに依存しているため、コンパイルが失敗します
オプション
私はこれらの方法で問題を解決することができます:
- 問題の親pomファイルを手動でインストールします(mvn install-file ...)
- 親からビルドする不要なビルド:すべてのモジュールを常にビルドします
- 親からビルドして、目的のプロジェクトを選択し、また-make(mvn -am -pl:appmod ...)を使用します。 不要なビルド:すべてのdepsを常にビルドする必要があります
最初のオプションは、私がそれを行う必要があることを知る必要があるため、問題です。2番目と3番目のオプションでも、それを実行する必要があることを理解するか、大規模なシステムで問題になる可能性のあるすべてのdeps/allmodを常に構築する必要があります。
「-am-pl:mod」以外の親インストールを強制する構成設定がある場合、またはこれは状況を処理するための「Mavenの方法」ですか?
ありがとう
ピーター
(Mavenが実行できない場合は、親をローカルリポジトリの親と照合し、差分にインストールを強制するラッパースクリプトを修正できます)