Apache Software Foundation で開発されている「プロジェクト管理ツール」 Maven のバージョン2。
Ant と Maven2 の違い
ビルド・プロセスの周辺作業をしてくれるサポートツールといえば make や Ant などが有名ですが、これらはプロジェクトを始める際にビルド・プロセスを一から書かなければなりません。 しかし、Maven2 ではビルド・プロセスが予め定義されているので、プロジェクトを始める際にプロジェクト・テンプレートを生成する以外に行うことはありません。
「Ant と Maven2 の違いはライブラリとフレームワークの違いだ」といっても良いでしょう。
Maven 1.x 系との違い
POM ファイル
Maven2 では POM ファイルが pom.xml になり(Maven 1.x 系では project.xml)、スキーマ定義のバージョンもアップされました。 新しいスキーマ定義によって、設定情報が POM ファイルに集約できるようになりました
*1。
デフォルトのディレクトリ構成
- ソース・ファイル:「src/java」→「src/main/java」
- リソース・ファイル:「src/conf」→「src/main/resources」
- テスト・ファイル:「src/test」→「src/test/java」「src/test/resources」
間接的な依存性の自動解決
Maven 1.x 系では、間接的に依存するプロジェクトに関しても開発中のプロジェクトの POM ファイルで依存性を指定しないといけませんでした。 Maven2 では、あるプロジェクトへの依存関係を指定すれば、そのプロジェクトが依存しているプロジェクトへの依存性が自動的に解決され、アーティファクトが自動的にダウンロードされます。
その他、ビルド・ライフ・サイクル、リポジトリ・レイアウトやプラグインに関しても変更が加えられています。