目次へ

2006.06.28 株式会社四次元データ 鈴木 圭

3.4. マルチモジュール・プロジェクト

Maven は複数のプロジェクトからなるマルチモジュール・プロジェクトを管理することができます。

ここでは、以下の構成のプロジェクトを作成しながら、マルチモジュールプロジェクトの作成方法を説明します。

myproject
├─myproject-sub
└─myproject-main

「myproject」プロジェクトは「myproject-sub」と「myproject-main」という2つのモジュールから構成されます。また、「myproject-main」は「myproject-sub」に依存するとします。

3.4.1. プロジェクトを作成する

マルチモジュールプロジェクトの作成は、通常のプロジェクトを作成した後に、各プロジェクトの pom.xml を書き換えるという手順で行います。

まずは親となる myproject プロジェクトを作成します:

>mvn archetype:create -DgroupId=com.example.myproject -DartifactId=myproject

次に、myproject ディレクトリの中で、myproject-sub と myproject-main プロジェクトを作成します:

>cd myproject
myproject>mvn archetype:create -DgroupId=com.example.myproject.sub -DartifactId=myproject-sub
myproject>mvn archetype:create -DgroupId=com.example.myproject.main -DartifactId=myproject-main

このとき、作成される myproject/src ディレクトリは不要なので削除します。

3.4.2. 親プロジェクトの設定

親である myproject の pom.xml を以下のように変更します:

<project ...>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example.myproject</groupId>
  <artifactId>myproject</artifactId>
  <packaging>pom</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>Maven Quick Start Archetype</name>
  <url>http://maven.apache.org</url>

  <modules>
    <module>myproject-sub</module>
    <module>myproject-main</module>
  </modules>
</project>

行うことは、

  • project/packaging 要素を 「pom」に変更。
  • project/modules 要素を追加。
  • project/dependencies 要素を削除。

の3点です。

3.4.3. 各モジュールの設定

次に myproject-sub と myproject-main の pom.xml の project 要素以下に parent 要素を追加します:

<project ...>
  ...
  <parent>
    <groupId>com.example.myproject</groupId>
    <artifactId>myproject</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  ...
</project>

最後に myproject-main の pom.xml に myproject-sub への依存性の指定を追加します:

<project ...>
  ...
  <dependencies>
    ...
    <dependency>
      <groupId>com.example.myproject.sub</groupId>
      <artifactId>myproject-sub</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>
    ...
  </dependencies>
  ...
</project>

以上でマルチモジュールプロジェクトの作成が終わりました。

myproject ディレクトリで「mvn compile」コマンドを使用すれば、プロジェクト全体がコンパイルされます。

>mvn compile
[INFO] Scanning for projects...
[INFO] Reactor build order:
[INFO]   Maven Quick Start Archetype
[INFO]   Maven Quick Start Archetype
[INFO]   Maven Quick Start Archetype

... (省略)

[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
[INFO] Maven Quick Start Archetype ........................... SUCCESS [0.000s]
[INFO] Maven Quick Start Archetype ........................... SUCCESS [1.547s]
[INFO] Maven Quick Start Archetype ........................... SUCCESS [0.640s]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Fri Nov 17 14:23:35 JST 2006
[INFO] Final Memory: 3M/10M
[INFO] ------------------------------------------------------------------------

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ
Loading