私は、ネストされたプロジェクトを持つ非常に複雑なマルチモジュールMavenプロジェクトを持っています。 は、基本的に、問題は、この構成に簡略化することができる。ファイル上でMavenコマンドを再帰的に実行
Project A
| pom.xml
| pomBis.xml
|
|---- Project B
pom.xml
pomBis.xml
---- Project D
pom.xml
---- Project E
pom.xml
|---- Project C
pom.xml
プロジェクトのPOMがプロジェクトBやモジュールなどCを有しています。 プロジェクトBでは、私はプロジェクトDしか持っていません。 プロジェクトEは毎日コンパイルする必要のない非常に大きなプロジェクトであるため、毎日のビルドから除外されています。
ここでは、のバージョン:update-parentなど、Mavenコマンドを実行します。すべての私のプロジェクトとサブプロジェクトを更新したい。 pom.xmlを使用すると、プロジェクトEは、プロジェクトBのサブモジュールとして宣言されていないため、更新されません。
私は、使用されるカスタムpomBis.xmlを作成することを考えました。しかし、各サブプロジェクトにpomBis.xmlを作成してコマンドを実行すると、のプロジェクトAのpomBis.xmlだけが使用されます。 Mavenが深く進むと、通常のpom.xmlに戻ります。
私が見る唯一の解決策は、プロジェクトAにpomBis.xmlを作成して、すべてのサブモジュールをリストし、すべてのリーフプロジェクトを実際に一覧表示することです。
何か問題がありますか?
プロジェクトCがツリーに2回表示されます。それを修正していただけますか? –
ありがとうございました。 – Maxoudela
構造全体を単一のマルチモジュールビルドとして正しく扱うならば、 'mvn -pl projectToBuild'を使ってビルドされるものを制御することができます。さらに、与えられたprojectToBuildに基づいてビルドされるべきものを定義し、 'mvn -pl projectToBuild --also-make-dependent'を実行します。それ以外にも、Jenkinsのインクリメンタルビルドを使用して、変更されたものだけを構築することができます。 – khmarbaise