1

マルチモジュラー プロジェクトで ear モジュールを親モジュールとして定義することは可能ですか?

次のプロジェクト構造があります。

  • モジュール EAR-1 は ModuleA と ModuleB の集約です
  • モジュール EAR-2 は、ModuleA と ModuleC の集約です。

どちらも展開する耳を生成する必要があります。

親モジュール用のダミーモジュールを持ちたくありません。グローバルな依存関係と構成を既存のプロジェクトにパックしたい。

これらすべての一般情報を配置するのに適切なモジュール/pomはどれですか。このポンポンは私の親ポンポンになります。

4

1 に答える 1

1

あなたには2つの異なる懸念があるようです。

  1. モジュール A、B、C は 2 つのプロジェクトで部分的に再利用されています。
  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

于 2012-08-06T11:31:59.660 に答える