リアクター pom (<modules>
要素を持つpom で、<packaging>
として定義されているpom
) がある場合、モジュールは依存関係の順序でビルドされます。この順序付けは、pom でモジュールが指定されている順序に関係なく行われます。
これにアプローチするには、いくつかの方法があります。
オプション1
リアクターのポンは、親のポンと同じポンである必要はありません。したがって、次のことができます。
project/pom.xml # Reactor pom with <modules> element
project/parent/pom.xml # Parent pom
project/module-a/pom.xml # Some module 'a'
project/module-b/pom.xml # Some module 'b'
この場合、リアクター pom には以下が含まれます。
<modules>
<module>parent</module>
<module>module-a</module>
<module>module-b</module>
</modules>
mvn install
最上位で実行すると、親 pom がビルドされ、2 つのモジュールが依存関係の順序でビルドされます。
オプション 2
親 pom をディレクトリの上に移動し、それを親 pom とリアクター pom の両方として使用すると、プロジェクトは次のようになります。
project/pom.xml # Parent/Reactor pom with <modules> element
project/module-a/pom.xml # Some module 'a'
project/module-b/pom.xml # Some module 'b'
その中のモジュールセクションは次のようになります
<modules>
<module>module-a</module>
<module>module-b</module>
</modules>
繰り返しmvn install
ますが、最上位で実行すると、親の pom がビルドされ、2 つのモジュールが依存関係の順序でビルドされます。
オプション 3
親の pom をそのままにして、modules セクションを追加します。
<modules>
<module>../module-a</module>
<module>../module-b</module>
</modules>
この場合、 mvn install -f parent/pom.xml を実行すると、親 pom がビルドされ、2 つのモジュールが依存関係の順序でビルドされます。
結論
私は通常、オプション 2 を使用します。これは、maven 自体で最も使用されるパターンであり、広く理解され、テストされている「打ち負かされた道」から離れすぎないようにしています。
詳細については、「複数のモジュールを使用するためのガイド」を参照してください。