同じMavenアプリケーションで継承と集約の両方が使用されている場合はどうなりますか?これはアプリケーションの構造です。
my-project-app
- my-project-jar
- my-project-war
ここで、アプリのpom.xmlで、jarプロジェクトとwarプロジェクトをモジュールとして宣言し、同時に両方のモジュールのpomがアプリのpomを親として宣言します。ここでなんらかの冗長性を生み出しているのですね。
この場合の最良の解決策は何ですか?
同じMavenアプリケーションで継承と集約の両方が使用されている場合はどうなりますか?これはアプリケーションの構造です。
my-project-app
ここで、アプリのpom.xmlで、jarプロジェクトとwarプロジェクトをモジュールとして宣言し、同時に両方のモジュールのpomがアプリのpomを親として宣言します。ここでなんらかの冗長性を生み出しているのですね。
この場合の最良の解決策は何ですか?
冗長ではありません。彼らは両方とも異なることをします。
集約(define <modules>
)を使用する場合は、ビルドする必要のあるプロジェクトを指定するだけで、そのパッケージタイプはpom
です。
継承(define <parent>
)すると、親pomの設定を継承します。
見る:
継承と集約は、単一の高レベルPOMを介してビルドを制御するための優れたダイナミクスを作成します。親でありアグリゲーターでもあるプロジェクトをよく目にします。たとえば、Mavenコア全体が単一のベースPOM org.apache.maven:mavenを介して実行されるため、Mavenプロジェクトのビルドは単一のコマンドmvncompileで実行できます。ただし、両方のPOMプロジェクト、アグリゲータープロジェクトと親プロジェクトは同じものではないため、混同しないでください。POMプロジェクトは、集約するモジュールから継承される場合がありますが、必ずしもそうとは限りません。逆に、POMプロジェクトは、それを継承しないプロジェクトを集約する場合があります。
詳細はこちら。