Apache Maven

Apache Maven（アパッチ メイヴン／メイヴェン）は、Java用プロジェクト管理ツールである。Apache Antに代わるものとして作られた。Apacheライセンスにて配布されているオープンソースソフトウェアである。

特徴 
このツールの大きな特徴はプラグイン拡張により様々な使い方ができることである。ソースコードのコンパイル、テスト、Javadoc生成、テストレポート生成、プロジェクトサイト生成、JAR生成、サーバへのデプロイ、WAR, EARファイル生成など様々な機能が用意されており、Antの場合にはbuild.xmlという設定ファイルに細かい指示を記述して行っていた各処理を、Mavenでは大まかな指示をpom.xmlに記述して処理する形となっている。

Mavenの大きな特徴は、pom.xmlの<dependency>タグにプロジェクトで使用したいJARライブラリ名及びバージョンを指定することで、外部サイトで集中管理されているJARを自動ダウンロードし、ローカルでビルドに使用することができる。JARを手動でひとつずつダウンロードして設定する旧来の手法と比較して、このPerlのCPANやPHPのPEARに似た技術により、WindowsUpdateなどののように容易にライブラリを管理・アップデートできる。そのほかGit、CVSやSubversionなどのバージョン管理システムにも対応している。

例えば、開発チームでプロジェクトを共有したいとき、JARファイルをわざわざ他者に手動でダウンロード、インストール、アップデートさせる手間も省くことができ、pom.xmlファイルと必要なソースコード、リポジトリに登録されていないJARファイルを配布するだけで済むようになる。なお、リポジトリに登録されていないJARファイルについては自身でリポジトリを作成し、集中管理・配布することも可能となっている。

Mavenはプラグインによって拡張することも可能である。

Maven 2 
Maven 2はJavaで書き直されて多くの点で改良されているため、Maven 1と互換性がかなり低いものの、Maven 1とMaven 2で使われるMavenのファイル名が異なることから、ひとつのMavenプロジェクトディレクトリでMaven 1とMaven 2の設定ファイル（project.xml,pom.xmlなど）を共有し、併用することができる。及びAntに対する依存性はなくなっている。また、スクリプト言語であるGroovyに対応している。Maven 2ではproject.xmlがpom.xmlになり文法が変わっている。project.propertiesはsettings.xmlに変わった。Maven 1で使用していたmaven.xmlはpom.xmlに統合されている。

Maven 3 
2010年にはMaven 3がリリースされた。3においては2との後方互換性の確保が図られている一方、各種内部構造の大幅な更新がなされている。

外部ツール 
Javaの主要IDEであるEclipse、NetBeans、IntelliJはネイティブにMavenに対応しており、pom.xmlをIDEのプロジェクトとして取り込んで作業することが可能となっている。

脚注

外部リンク 

Maven ホームページ

Maven
Java開発ツール
オープンソースソフトウェア