あなたには2つの異なる懸念があるようです。
- モジュール A、B、C は 2 つのプロジェクトで部分的に再利用されています。
- 2 つの ear プロジェクト (EAR 1 および 2) を 1 つのプロジェクトで管理したいと考えています。
A は jar (サービスまたは共通のクラスを提供する) であり、B と C は戦争だと思いますね。
プロジェクトが本当にリンクしている場合、つまり、それらを一緒に構築し、同時に配信し、リリースを促進するときは、すべてのプロジェクトでそれを行います。次の構造をお勧めします。私はそれをテストしたことがないので、欠点があるかどうかはわかりません。
/parent
+--pom.xml
|
+--/moduleA
| +--pom.xml
+--/moduleB
| +--pom.xml
+--/moduleC
| +--pom.xml
+--/app-ear1
| +--pom.xml
+--/app-ear2
| +--pom.xml
\
情報を収集して共有するか、内部で管理するまで、ダミーの親プロジェクトはないと考えてください。
親モジュールは明らかにモジュールを収集し、dependencyManagement (依存関係のバージョンの管理を容易にするため) と pluginManagement を収集します。また、チーム、CI 管理なども含まれます。実際、すべての一般的な情報が含まれます。
そして、全体をビルドしたい場合は、親で mvn package を使用します。リリースするときは、親で mvn release:perform を実行するだけです。
別々に使用/配布したい場合 (耳 1 を片側から、耳 2 を反対側から)、同じ構造にならない場合があります。
/corporate
+--pom.xml
/moduleA
+--pom.xml
/parent-1
+--pom.xml
|
+--/moduleB
| +--pom.xml
|
+--/app-ear1
| +--pom.xml
\
/parent-2
+--pom.xml
|
+--/moduleC
| +--pom.xml
|
+--/app-ear2
| +--pom.xml
\
Corporate は parent1 と parent2 によって拡張され、依存関係管理、プラグイン管理、および CI などの情報に関して、ケース 1 の親と同じ役割を持ちます。最初のケースでもそれを行うことができると考えてください。
こちらをご覧ください: Maven2: エンタープライズ プロジェクトのベスト プラクティス (EAR ファイル)。より多くの情報を見つけることができます。
どちらの場合も、eclipse で WTP を使用する場合は注意してください: Multi Module Maven2 Project with WTP。