Maven 入門 | Maven 準備 | Apache Maven とは?
Java プログラマーにとって事実上の標準と言えるビルドツールが「Apache Maven」である。
これは Apache Software Foundation が開発を進めているオープンソースのビルドツールである。Maven が支持されている理由はいくつかある。
-
もともと Java では Ant というビルドツールが広く使われていた。Maven は Ant の後継とも言えるもので、自然な流れで Ant から Maven へ移行し、いつの間にか事実上の標準になっていたという印象がある。
-
Maven の最大の功績は「中央リポジトリ」を用意したことである。これは Java で使用されるさまざまなライブラリやプログラムを集中管理するサーバーであり、Maven はこのサーバーに接続して必要なプログラムをダウンロードし、プロジェクトにインストールする。つまり、開発者がライブラリなどを直接インストールしたり管理したりする必要がない。Maven 以外のビルドツールでも、この Maven 中央リポジトリを利用しているものが多い。
-
Maven は XML でビルドファイルを作成する。XML を使う点については意見が分かれるかもしれないが、必要な情報を分かりやすく構造的に説明するものとして XML は広く使われており、比較的受け入れやすい。また XML は構造がしっかりしていて解析しやすいため、開発ツールでは専用のビジュアルエディタなども多くサポートされている。
他にもさまざまな利点はあるが、「XML ベースで比較的分かりやすく、プロジェクトで使用するライブラリなどもまとめて管理してくれる」というだけでも、Maven を利用する意味は大きい。
Maven vs Ant
Ant と Maven は、どちらも Apache が提供するビルドツールである。ビルドツールの主な目的は、プロジェクトの構築プロセスを簡単にすることである。
Ant と Maven の間には、次のような多くの違いがある。
| Ant | Maven |
|---|---|
Ant には公式な規約がないため、build.xml ファイルにプロジェクト構造の情報を提供する必要がある。 |
Maven にはソースコードやコンパイル済みコードなどを配置するための規約がある。そのため、pom.xml ファイルにプロジェクト構造の情報を提供する必要はない。 |
| Ant は手続き型である。コードを通じて、何をいつ実行するかという情報を提供する必要がある。順序を指定する必要がある。 | Maven は宣言型であり、すべてを pom.xml ファイルで定義する。 |
| Ant にはライフサイクルがない。 | Maven にはライフサイクルがある。 |
| ツールの形態である。 | フレームワークの形態である。 |
| 主な機能はビルドツールである。 | プロジェクト管理ツールである。 |
| Ant スクリプトは再利用できない。 | Maven プラグインは再利用できる。 |
| Maven よりは好まれにくい。 | Ant より好まれる。 |