Apache Maven
オープンソースのJava用プロジェクト管理ツール
From Wikipedia, the free encyclopedia
Apache Maven(アパッチ メイヴン/メイヴェン)は、Java用プロジェクト管理ツールである。Apache Antに代わるものとして作られた。Apacheライセンスにて配布されているオープンソースソフトウェアである。
|
| |
| 開発元 | Apacheソフトウェア財団 |
|---|---|
| 最新版 |
3.9.12
/ 2025年12月13日[1] |
| 最新評価版 |
4.0.0-rc-5
/ 2025年11月13日 |
| リポジトリ | |
| 対応OS | クロスプラットフォーム |
| プラットフォーム | Java |
| 種別 | プロジェクト管理ツール |
| ライセンス | Apache License 2.0 |
| 公式サイト | https://maven.apache.org/ |
特徴
このツールの大きな特徴はプラグイン拡張により様々な使い方ができることである。ソースコードのコンパイル、テスト、Javadoc生成、テストレポート生成、プロジェクトサイト生成、JAR生成、サーバへのデプロイ、WAR, EARファイル生成など様々な機能が用意されており、Antの場合にはbuild.xmlという設定ファイルに細かい指示を記述して行っていた各処理を、Mavenでは大まかな指示をpom.xmlに記述して処理する形となっている。
Mavenの大きな特徴は、pom.xmlの<dependency>タグにプロジェクトで使用したいJARライブラリ名及びバージョンを指定することで、外部サイトで集中管理されているJARを自動ダウンロードし、ローカルでビルドに使用することができる。JARを手動でひとつずつダウンロードして設定する旧来の手法と比較して、このPerlのCPANやPHPのPEARに似た技術により、WindowsUpdateなどのLiveUpdateのように容易にライブラリを管理・アップデートできる。そのほか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など)を共有し、併用することができる。Apache Jelly及びAntに対する依存性はなくなっている。また、スクリプト言語であるGroovyに対応している。Maven 2ではproject.xmlがpom.xmlになり文法が変わっている。project.propertiesはsettings.xmlに変わった。Maven 1で使用していたmaven.xmlはpom.xmlに統合されている。