目次へ

1. Maven とは

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

1.1. Maven とはどのようなものか

Maven とはApache Software Foundationで開発されているソフトウェアプロジェクト管理ツールです。

Maven は Project Object Model (POM) という考え方に基づき、プロジェクトのビルド、テスト、ドキュメンテーション、成果物の配備など、プロジェクトのライフサイクル全体を管理します。プロジェクトのビルドツールである Ant とは異なり、Maven はプロジェクト管理ツールとして、プロジェクトに関する色々な情報を POM に集約し、POM の情報に基づきプロジェクト全体を管理します。

Maven の機能をいくつか挙げると:

  • プロジェクトの依存するライブラリの管理。
  • プロジェクト情報の配信。(サイトの作成、配備やユニットテストのレポートなど)
  • プロジェクトの作成からコンパイル、テスト、パッケージング、配備などのプロジェクトのライフサイクルに含まれる各タスクの支援。

などがあります。

また、Maven はソフトウェアプロジェクトの「管理ツール」であると同時に「理解ツール」でもあります。Maven の第一の目標は、開発者が短期間でプロジェクトを理解する助けとなることです。そのために、Maven では:

  • ビルドプロセスを簡単にする。
  • 統一したビルドシステムを提供する。
  • 良質のプロジェクト情報を提供する。
  • 開発のベストプラクティスのためのガイドラインを提供する。
  • 新機能への透過的な移行を考慮に入れる。

ということが行われています。これらにより、Maven を利用したプロジェクトはどれもビルド方法が同じであったり、ディレクトリ構成がほぼ同じなので全体を把握しやすいなどのメリットが生まれます。

Maven の構成は、小さなコアと大量のプラグインから成っています。そして、プラグインやライブラリは必要に応じて自動的にダウンロードが行われます。この仕組みによって、Maven やプラグインがバージョンアップされたときに、新機能へ透過的に移行することができます。

Maven は当初、Jakarta Turbineプロジェクトのために作成されました。複数のサブプロジェクトから成る Jakarta Turbineプロジェクトのビルドプロセスを単純化するために作成されていたものが個別のプロジェクトとして独立しました。

そして 2006 年 4 月現在、Maven は version 1 系統から version 2 系統への移行期にあります。両者はそれぞれ 「Maven1」「Maven2」と区別して呼ばれる場合があります。しばらくは、Maven1 と Maven2 は平行して開発が行われると思いますが、新しく Maven を導入する場合は Maven2 を使用することをお勧めします。Maven2 は Maven1 との互換性を犠牲にすることにより、より速く、より使いやすくなるように設計されています。

今回は、Maven2 について解説を行います。(以降、バージョンを区別したい場合を除き、Maven2 のことを単純に「Maven」と記述します。)

1.2. Maven の入手とインストール

Maven は以下の公式サイトからダウンロードすることが出来ます。今回は、Maven 2.0.4 (maven-2.0.4-bin.zip) をダウンロードしました。

http://maven.apache.org/

Maven のインストールは、ダウンロードしたファイルを適当なディレクトリに展開します。そして、以下に挙げる環境変数を設定します(説明の便宜上 Maven をインストールしたディレクトリを「M2_HOME」と記述しています):

  • 環境変数「JAVA_HOME」に JDK のインストールされているディレクトリのパスを追加する。
  • 環境変数「PATH」に Maven の実行ファイルのあるディレクトリを追加する。(Windows の場合は「%M2_HOME%\bin」、Linux などの場合は「$M2_HOME/bin」です。)

以上の作業が終了したら、次のコマンドを入力してみましょう:

mvn --version

以下のような出力が得られれば、インストールは完了です:

Maven version: 2.0.4

次回予告

次回は実際に Maven を使用したプロジェクトを作成し、コンパイル、テスト、パッケージング、インストールなどの開発全体の流れを紹介します。

 

↑このページの先頭へ

こちらもチェック!

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