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を手動でひとつずつダウンロードして設定する旧来の手法と比較して、このPerlCPANPHPPEARに似た技術により、WindowsUpdateなどのLiveUpdate英語版のように容易にライブラリを管理・アップデートできる。そのほかGitCVSSubversionなどのバージョン管理システムにも対応している。

例えば、開発チームでプロジェクトを共有したいとき、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など)を共有し、併用することができる。Apache Jelly英語版及び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であるEclipseNetBeansIntelliJはネイティブにMavenに対応しており、pom.xmlをIDEのプロジェクトとして取り込んで作業することが可能となっている。

脚注

外部リンク

Uses material from the Wikipedia article Apache Maven, released under the CC BY-SA 4.0 license.