Maven3のはじめかた
Search…
概要
はじめに
Maven入門
プロジェクトをリポジトリに公開する
Mavenプラグインを実装する
モジュール
モジュールでプロジェクトに構造を持ち込む
マルチモジュール構成プロジェクト用実行時オプション
困ったときの逆引き
付録
Powered By
GitBook
モジュールでプロジェクトに構造を持ち込む
ある程度の規模になってくると、プロジェクトに構造と制約を持ち込んだほうが開発の効率が上がります。
Javaはクラスをまとめるための仕組みとしてパッケージを提供していますが、もう少し大きな枠組(コンポーネント単位、 サービス単位など)での構造化をしようとするとプロジェクトを分ける必要性が出てきます。
これを普通にやると分割されたプロジェクトの数だけVCSのリポジトリを用意して、pom.xmlを用意して、プロジェクト間の関係を 依存関係として記述して…というかなり複雑かつ管理が難しい方法を採ることになってしまいます。これではプロジェクトの間に 依存ライブラリの不整合が生じたり、ビルド手順が複雑化してメンテナンスが難しくなったりするでしょう。
例としてcore, batch, frontの3つにプロジェクトを分けた場合を考えましょう。ビルド手順は次のようになります。 どの順番でビルドすればよいのかをきちんと覚えておかないと、コンパイルエラーになったりひとつ古いバージョンに依存した状態で テストしてしまったりといったトラブルが予想できます。
1
cd go/to/workspace
2
svn co http://repository/project-core && cd project-core && mvn install
3
cd go/to/workspace
4
svn co http://repository/project-batch && cd project-batch && mvn install
5
cd go/to/workspace
6
svn co http://repository/project-front && cd project-front && mvn install
Copied!
Mavenは
モジュール
という、パッケージとプロジェクトの中間の大きさを持つ構造を提供しています。 モジュールの特徴は次のとおりです。
プロジェクトに含まれるすべてのモジュールで設定を統一できます。
バージョン
リモートリポジトリの場所
ライセンス
利用プラグインのバージョンと設定
依存ライブラリのバージョンとスコープ
etc.
関連モジュールを一度にビルドできます。
Mavenはモジュール間の依存関係を自動的に解析し、モジュールのビルド順を決定
プロジェクトに含まれるすべてのモジュールから必要なモジュールだけを取り出してビルド可能
プラグインの適用範囲を制限できます。
プラグインはモジュール単位で作用するため、プロジェクトの一部分にのみ作用させられる
たとえば1プロジェクトからjarファイル・warファイル・earファイルを複数生成可能
プロジェクト全体に作用するプラグインも存在(aggregateパラメータを利用した
pmd:pmd
など)
たとえば2013年9月現在、
Jenkins
は
core
,
maven-plugin
,
test
といった合計7つのモジュールで構成されています。
Previous
モジュール
Next
マルチモジュール構成プロジェクト用実行時オプション
Last modified
7mo ago
Copy link