Java開発におけるビルドツールといえば、Antが有名でしょう。Mavenが地道に注目を集めてきています。Project」の第2回「AntでJavaのビルドを簡単にする」をご参照ください。本稿では、連載「CoolなEclipseプラグイン」の番外編として、前後編に分けてMavenの概要とEclipse上でのMaven利用をサポートするプラグイン「q4e」を紹介します。Antに代わるビルドツール「Maven」とは?「Maven」(メイヴェン、メイヴン)は、Antと同様に、プログラムのコンパイル、テスト実行、パッケージングなどのソフトウェア開発における一連の作業を自動化するためのツールです。Mavenは、Antにはない以下のような優れた特徴を持っています。Project」のページMavenの特徴【1】高機能なライブラリ管理・依存ライブラリの“自動”追加プロジェクトに必要なライブラリのバージョン不整合で問題になったことはありませんか?開発者各人がライブラリを1つ1つ手作業でダウンロードして開発環境を準備していれば、そのような問題も必然的に起こってしまいます。これに対して、Mavenではプロジェクトが依存しているライブラリ群を「バージョンの整合性のある状態で」自動的にダウンロード・利用できるようになります。Mavenの特徴【2】ビルド・スクリプト要らずAntのビルド・スクリプト(build.xml)は、自動化したい作業が増えたり、規模が大きくなるにつれ、その記述・保守の作業の手間が大きくなってきます。Mavenでは複雑なビルド作業でも、スクリプトを一から作ることなく、簡単に自動化できます。「ビルド手順は大体こうすべき(した方がよい)」「標準のディレクトリ構成」といった取り決めに基づいていることが、これを可能にする大きな理由になっています。Configuration(設定よりも規約)」を採用していますが、2004年に最初の安定バージョンがリリースされているMavenはその先駆けといえるでしょう。Projectの全貌を探る」を、それぞれご参照願います。Mavenの特徴【3】豊富なプラグインMavenは、コンパイルやテスト実行などのビルドの基本的な作業のほかに、以下の実にさまざまな作業を支援するプラグインを提供しています。・プロジェクトのWebサイト生成レポート生成のプラグインについては、後述します。編集部注:CheckStyleプラグインついての詳細を知りたい読者は、記事「コーディング規約に従わないコードを検索する」を、PMDプラグインについては、記事「Eclipseで使える静的解析ツール」を、それぞれご参照願います。Model)とリポジトリがあります(図2)。後述するq4eプラグインを利用するうえで重要なため、ここで簡単に説明します。「POM」POMは、Antでいうところのビルド・スクリプト(build.xml)に代わるものといえます。スクリプトのように処理をそのまま記述する形ではなく、大まかなビルドプロセスはほぼ固定のままにして、プロジェクトごとに異なる部分だけをパラメータとしてPOMファイルと呼ぶXMLファイル(pom.xml)に定義します。いい換えれば、「大きな処理の流れとしては可能な限り再利用して、違うところだけちょっと書きましょう」というスタイルになっており、これが「ビルド・スクリプト要らず」を実現しています。POMファイルには、主に、プロジェクトを識別するための情報や、プロジェクトが依存するライブラリなどが記述されます。プロジェクトに必要なライブラリを自動ダウンロードする「リポジトリ」Mavenでは、プロジェクトに必要なライブラリを「依存関係も考慮して」自動的にダウンロードしてくれる機能があります。これは「リポジトリ」機能により実現されています。リポジトリには、「リモートリポジトリ」と「ローカルリポジトリ」とがあり、リモートリポジトリはネットワーク越しに提供されているリポジトリで、通常、Mavenプロジェクトがあらかじめ提供している「セントラルリポジトリ」を利用します。ローカルリポジトリはリモートリポジトリのキャッシュとして働くリポジトリで、Mavenを実行しているローカルマシンに作られます。ローカルリポジトリは、デフォルトでは「ユーザーディレクトリ/.m2/repository」に作られます。そのほかはq4eプラグインを利用しながら身に付けましょうそのほか、Mavenを使ううえで知っておくべきことがまだありますが、後述のq4eプラグインを実際に利用する説明の中で触れていきます。Mavenの詳細についてはMavenのWebサイトを参照してください。Code」という開発ホスティングサービスで開発されています。編集部注:開発ホスティングサービスについて詳しく知りたい読者は、記事「ソースコードの宝石箱、●●Forgeを見逃すなかれ」をご覧ください。IAM)として、Eclipseプロジェクトへプロポーザルが提出されました。順調にいけばeclipse.orgで提供されることになり、まさにEclipseの公式Mavenプラグインになります。IAMのページちなみにq4eは、著名なスパイ映画「007」シリーズに登場し、数々の秘密兵器を開発する人物「Q」にちなんで名付けられています。「m2eclipseとの比較」q4eが「Eclipse公式のMavenプラグイン」にするために開発が行われていることは、将来性の意味でもm2eclipseとの大きな違いといえます。m2eclipseになくq4eにある機能としては、以下があります。archetypeメカニズムによるMavenプロジェクトの新規作成ウィザードライブラリ依存関係をグラフィカルに表示Mavenログのイベントビュー表示(ログのフィルタリングが可能)ただ、m2eclipseとq4eの機能比較サイトを見ても分かるように、現時点ではm2eclipseの方が機能的に有利といえます。Embedder」というMavenライブラリの開発で協力し合っているため、今後、両者のいいところがマージされていくことに期待したいところです。m2eclipseについては、CoolなEclipseプラグイン(11)「ビルドを効率化するEclipseプラグイン」を参照してください。q4eのセットアップq4eプラグインをEclipseで利用するにはまず、下記のアップデートサイトからプラグインをダウンロードします。2.1ベースのMaven実装が入っています。よって、q4eプラグインをインストールすればMavenはインストールする必要がありません。一方で、ビルドツールの性格上、コマンドラインでMavenを実行したい場合もあるかもしれません。その場合は別途MavenのWebサイトからダウンロードしてインストールしてください(コラム「Mavenのインストール」参照)。0.5.0の利用を前提として説明します。q4eプラグインは現時点でまだ開発途中のため多少不安定な部分も残っていますので、保険としてコマンドラインからMaven実行できる環境を準備しておくのもよいでしょう。「Mavenのインストール」MavenのWebサイトからアーカイブ・ファイルをダウンロードし、任意のディレクトリに展開します(ここでは、「%M2_HOME%」とします)。以下の環境変数の設定を行います。「Maven2メニュー」と対応するMavenコマンド上記完了後、コマンドプロンプトから以下を実行し、バージョン番号(2.0.8など)が表示されることを確認してください。-versionq4eの動作に関する設定は、Eclipseメニューの[設定]→[Maven]から行うことができます(図5)。XML]などが行えます。Reference」をご覧ください。次ページからは、q4eを使ったMavenの簡単な利用法を解説していきます。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。