2

モジュールの 1 つがマルチモジュール プロジェクトでもあるマルチモジュール プロジェクトを構築しています。を使用してネストされたマルチモジュールを個別にビルドしようとすると-pl <multi-module child>、Maven は pom (子の最上位モジュール) のみをビルドし、マルチモジュール プロジェクトで指定された残りのモジュールをビルドしません。

を使用せずに-plすべてのモジュールをビルドすると、すべてが正常に機能し、プロジェクトは意図したとおりにビルドされます。

なぜこれが起こっているのか、Mavenにプロジェクト全体をビルドさせることはできません。

4

3 に答える 3

2

この-plオプションは、指定したプロジェクトを正確にビルドします。Maven は、親 POM を、たまたま階層の最初にある通常のプロジェクトとして扱います。できることは、「サブマルチモジュール」プロジェクトを参照し、そこから Maven を実行することです。オプション-rf(resume from) も機能する場合があります。

于 2012-11-01T21:41:11.330 に答える
1

-plそれを達成するためのより良い方法は、孫のサブモジュールの 1 つを参照するために使用することだと思います。おそらく兄弟に依存するため、おそらく同じ結果を達成できます。

このプロジェクトは、それを行う方法の優れた例です: https://github.com/andyglick/maven-multi-level-modules-project

つまり、次のことができます。

mvn test -pl com.example:my-grandchild-module -am
于 2021-03-16T06:03:37.273 に答える