
Javaのビルドツールのデファクトスタンダードといえば、「Apache Maven(メイブン)」です。
最近のJavaフレームワークでは、Mavenのビルドファイルを公開して、プロジェクトの生成を行うといった所も増えてきています。
Apache Antとの違い
それまで、Javaのデファクトスタンダードと言われていていたビルドツールとしては、「Apache Ant」がありますよね。
クロスプラットフォームで動き、XMLを用いたビルドファイルで、「タスク」を動かして実行する形態のものでした。
Antには、下記の限界がったので、アプリ全工程に対する自動化を目指して作られたのが、「Apache Maven」になります。
Antの限界
Antは大規模プロジェクトで使われるに当たり単に「ビルドに関する作業だけ行うツール」に過ぎず、それ以外の「ビルドしたプログラムのテスト」、「JavaDocのドキュメント作成」等を行わせようとすると、途端に面倒になってしまいました。
Mavenの特徴
XMLでビルドファイルを記述する。
Ant同様に、XMLファイルに記述して、そこの内容を元にタスクを行います。
目的(ゴール)の指定
Antと異なり、一つ一つの命令を書いていくのではなく、Mavenで実行する作業の目的である「ゴール」を指定します。
そのゴールに付随する「作業のために必要な情報」をビルドファイルに書いていきます。
ゴールの例
- Webアプリの作成
- JavaDocの作成
ライブラリ管理
プロジェクトで必要となるソフトウェアを管理する機能を持っています。
ビルドファイルに記載された情報を元に、必要なライブラリを自動でダウンロードして組み込んでくれます。
セントラルリポジトリ
Mavenのライブラリをまとめて管理するWebサービスになります。
Maveの自動ダウンロードを可能にした仕組みで、ここに毎回アクセスして必要なファイルをダウンロードします。
また、Mavenだけでなく、他のビルドツールでも、このMavenが生み出したビルドツールを利用していたりします。
セントラルリポジトリの活用法については下記の記事でも解説しています。
テスト、ドキュメントの作成
Junitによるテストの実行、JavaDocのドキュメント生成を実行してくれます。
プラグインによる拡張も可能
Mavenは、プラグインによる独自の拡張も可能です。
Mavenのディレクトリ構成
Mavenをインストールすると下記のような構成になっています。
フォルダ名 | 説明 |
---|---|
bin | 実行するコマンドプログラムがまとめてあります。実体は、mvn、mvn.cmdといったファイルになります。 |
boot | Plexus classwordsというクラスローダープログラムが入っています。 |
conf | 設定ファイル(xmlファイル)が入っています。 |
lib | maven本体及び、mavenで使っているライブラリがまとめられています。 |
Mavenの使い方
Mavenの具体的な使い方については、下記の記事で解説しています。
この記事へのコメントはありません。