I-16-7. Javaプロジェクト管理ツールMaven

Javaソフトウェア開発のコンパイル、ビルド、テスト、パッケージングに至る一連の作業の自動化するプロジェクト管理ツールMavenを解説する。スクリプトを記述する必要が少ないことなどAntに比べて優れた点にも触れる。

【学習の要点】

* MavenはJavaプロジェクト管理ツールとして、Antの機能を包含するだけでなく、プロジェクトの作成から公開に至るまでのライフサイクル全体を管理できる。

* MavenはAntのようにXMLを直接記述する必要が少なく、Antに取って代わる可能性を秘めている。

図I-16-7. Mavenの概念

【解説】

1) Mavenとは

Maven (Apache Maven)とは、Jakartaプロジェクトで開発されている、Java用プロジェクト管理ツールであり、Apacheライセンスにて配布されているOSSである。Mavenバージョン2はバージョン1から大きく変更されている。以下、バージョン2について解説する。

2) Mavenの特徴

* ビルド支援

Mavenは内部でAntを使用しており、Antのようにビルドスクリプトを一から書く必要がないようになっている。

* POMに基づいた動作

Javaプロジェクト全体をオブジェクトとみなすモデル「プロジェクトオブジェクトモデル(POM)」に基づき、プロジェクトの作成から公開までのライフサイクル全体を管理できる。

* サイト公開が容易

POMに定義されている情報にアクセスして、HTMLとしてプロジェクトサイトを生成できる。生成されるHTMLには、POMに直接記述している情報のほか、以下のようなものが提供される。

- リポジトリ情報から直接生成された変更ログ

- 相互参照ソース

- ソースのメトリクス

- メーリングリスト

- 開発者リスト

- 依存関係リスト

- ユニットテストレポートとカバレッジレポート

- 記事のコレクション

- ソフトウェア開発のリファレンス

- ソフトウェア開発プロセスの文書

* リポジトリの共有

プロジェクトの使用者がビルドに必要なJARファイルをリモートリポジトリからダウンロードする機能を持つ。複数のプロジェクトに渡ってJARファイルを再利用することができる。

* ディレクトリ構成の標準化

プロジェクトの推奨ディレクトリ構成があり、成果物の保守性、再利用性が高まる。

* 成果物の自動インストール

POMの依存関係で定義している成果物をリモートリポジトリより自動取得して、ローカルリポジトリにインストールする機能がある。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。