2006.06.28 株式会社四次元データ 鈴木 圭
Maven 3章 Maven 入門 (2)
- 3.1. 依存性について
- 3.1.1. 依存性の指定とスコープ
- 3.1.2. groupId, artifactId, version に指定する値の調べ方
- 3.1.3. 実際に依存性の指定を行う
- 3.1.4. ライブラリをローカルリポジトリにインストールする
- 3.2. プラグインについて
- 3.2.1. プラグインの設定方法
- 3.2.2. プラグインの情報の調べ方
- 3.2.3. 実際にプラグインの設定を行う
- 3.3. リモートリポジトリの設定方法
- 3.3.1. リモートリポジトリの種類
- 3.3.2. リモートリポジトリの設定
- 3.4. マルチモジュール・プロジェクト
- 3.4.1. プロジェクトを作成する
- 3.4.2. 親プロジェクトの設定
- 3.4.3. 各モジュールの設定
- 3.5. まとめ
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] ------------------------------------------------------------------------