DATE : 2006/06/26 (Mon)
「Maven Eclipse Plugin Multiple Module Project with Eclipse」から、 Eclipse でマルチモジュールの Maven プロジェクトを作成する方法をメモします。
Maven プロジェクトの作成
まず、Maven プロジェクトを作成します。
Maven プロジェクトを作成するには、プロジェクトを作成するディレクトリ(例えば、Eclipse のワークスペースに該当するディレクトリ内など)で以下のコマンドを実行します。
mvn archetype:create -DgroupId=<groupId> -DartifactId=<artifactId>
すると、artifactId と同名のディレクトリが生成されます。
ディレクトリの中ある pom.xml を次のように書き換えます。
なお、「...」は中略を表します。
<project ...> ... <packaging>pom</packaging> ... </project>
ここで、この Maven プロジェクトの artifactId を「application」、groupId を「app」と仮定しておきます。
次に、application と同じディレクトリで application のサブプロジェクトを生成します。サブプロジェクトを生成するコマンドは、先程のコマンドと同じです。
ここでは、artifactId が「application-core」と「application-ui」のサブプロジェクトを生成したとします。groupId は、両者とも同じ「app」です。
サブプロジェクトに親プロジェクトを設定
先程生成した application-core と application-ui に、application が親プロジェクトであるという旨を設定します。
ここでは、application-core と application-ui の pom.xml に、次の設定を追加します。
<project ...> ... <parent> <groupId>app</groupId> <artifactId>application</artifactId> <version>1.0-SNAPSHOT</version> </parent> ... </project>
親プロジェクトにサブプロジェクトを設定
application に application-core と application-ui がサブプロジェクトであるという旨を設定します。
application の pom.xml に次の設定を追加します。
<project ...> ... <modules> <module>../application-core</module> <module>../application-ui</module> </modules> ... </project>
本来の Maven では、親プロジェクトのディレクトリ内にサブプロジェクトが配置されるという形がとられています。そのため、親プロジェクトのあるディレクトリにサブプロジェクトを配置する場合は、module 要素の内容として1つ上のディレクトリを指さなければなりません。
プロジェクト間に依存関係がある場合
例えば、application-ui が application-core 内のクラスを使用する場合には、次のように、 application-ui の pom.xml に依存関係の設定を追加します。
<project ...> ... <dependencies> ... <dependency> <groupId>app</groupId> <artifactId>application-core</artifactId> <version>1.0-SNAPSHOT</version> </dependency> ... </dependencies> ... </project>
Eclipse のプロジェクトファイルの生成
以上の設定が完了したら、application のディレクトリ内で次のコマンドを実行します。
mvn install
mvn eclipse:eclipse
これで、application-core と application-core のディレクトリ内に、Eclipse のプロジェクトファイルが生成されます(application のディレクトリ内には何も生成されません)。
あとは、Eclipse から「インポート」で既存のプロジェクトとして application-core と application-ui をインポートすれば作業は終了です。ついでに、 application も新規プロジェクトとして Eclipse に登録しておくと締まりが良いかもしれません。
参考文献
- Maven Eclipse Plugin Multiple Module Project with Eclipse 今回の記事は、このページをまとめたようなものです。
- いつかMavenと呼ばれたい@Wiki