Eclipseプラグインq4eでカンタンMaven入門(前編)
ビルドやテスト、依存ライブラリ追加は
自動化できる!
吉田英嗣
2008/3/25
q4eでMavenを使ってみると、こんなに簡単!
それでは、q4eを利用してMavenプロジェクトを作成・実行する手順を説明していきましょう。
■ Mavenプロジェクトの生成(archetypeの指定)
Eclipseメニューの[ファイル]→[新規]→[プロジェクト]から実行できるMaven2プロジェクト生成ウィザード([Maven 2 Project]→[Maven 2 Project Creation Wizard])により、Mavenプロジェクトを新規作成します。
q4eでは、コマンドラインからMavenでプロジェクトのひな型を作るときと同様に、「archetype」を指定して新規プロジェクトを生成できます。archetypeは、Mavenでプロジェクトのひな型を生成する際の「種」のようなもので、作りたいひな型のタイプによってさまざまなものが提供されています。
例えば、以下などがあります。
- maven-archetype-quickstart:通常のJavaアプリケーション(JAR)開発用
- maven-archetype-webapp:Webアプリケーション(WAR)開発用
- maven-archetype-j2ee:J2EE(Java EE)アプリケーション(EAR)開発用
- maven-archetype-mojo:Mavenプラグイン(Mojo)開発用
また、archetypeは自分で作ることも可能なため、多くのサードパーティ製のarchetypeが提供されています。q4eでは、archetypeを一覧から簡単に選択できるようになっています。
今回は通常のJavaアプリケーションのプロジェクトを作るため、ウィザード中の[Maven Archetypes]の選択では、「maven-archetype-quickstart」を選択します(図6)。
![]() |
| 図6 archetypeの選択 |
最後に、Mavenプロジェクト情報([Maven Project Information])として、[Group ID](プロジェクトの所属を示すID)などを設定します(図7)。
![]() |
| 図7 Mavenプロジェクト情報の設定 |
まずは最低限、以下のことを意識して設定しておけば大丈夫です。
- ビルドの結果、生成されるJARファイルの名前が、[Artifact ID]の値+「-」[Version]の値+「.jar」となる。例えば、図7のように設定した場合、「sampleapp-0.0.1.jar」となる
- JARファイルがMavenリポジトリに配置されるとき、その配置場所が「[Group ID]の値のドット区切りのディレクトリ+「/」+[Version]の値+「.jar」となる。例えば、図7のように設定した場合、「com/example/0.0.1/sampleapp-0.0.1.jar」となる
ウィザードを[終了]すると、ひな型プロジェクトの生成が開始されます(1度目はMaven実行自体に必要なプラグインをダウンロードするため少し時間がかかります)。
■ Mavenの実行ログを見る
なお、Maven実行のログを見たい場合は、[Maven Events]ビューを表示させておく必要があります。[Maven Events]ビューは、[メニュー]の[ウィンドウ]→[ビューの表示]→[その他]から[Apache Maven]→[Events]を選択すると表示されます。
[Maven Events]ビューでは、ログレベル(debug/info/errorなど)によりログをフィルタリングして表示できるようになります(図8)。
![]() |
| 図8 [Maven Events]ビュー |
■ Mavenにおける標準ディレクトリ構造
生成されたひな型プロジェクトは図9のような構成になっています(パッケージ・エクスプローラ表示の場合)。
![]() |
| 図9 ディレクトリ構成 |
この構造は、Maven界で標準とされているディレクトリ構造に従っているものとなっており、ソースコードはsrc/main/javaに、テストコードはsrc/test/javaに格納するようになっています。
Mavenの標準ディレクトリ構造の詳細については、Mavenサイト内の「Introduction to the Standard Directory Layout」を参照してください。
また、生成されたプロジェクトの中には、POMファイル(pom.xml)も生成されています。コンパイル後のクラスファイルやJARファイルなどはtargetディレクトリに格納されます。
q4eで生成したプロジェクトは、「Maven Classpath Container」というクラスライブラリが設定されている状態ですが、これはプロジェクトの依存ライブラリをEclipse上で利用できるようにするもので、POMファイルで記述している依存ライブラリの設定に同期するようになっています。
生成されたプロジェクトでのMaven操作は、主にパッケージ・エクスプローラのプロジェクトのコンテキストメニュー(右クリック)の[Maven2]のメニューから実行できます(図10)、以降、このメニューを「Maven2メニュー」と呼びます)。基本的にMavenのコマンドを意識する必要はありません。
![]() |
| 図10 q4eの「Maven2メニュー」 |
■ コンパイル! テスト!! パッケージング!!!
Mavenのスゴさは、プロジェクトを新規生成した時点で、すでにコンパイルからJUnitテスト実行、JARファイルへのパッケージングまでが自動実行可能になっていることです。
q4eでは、「Maven2メニュー」の[Package Artifact]を選択するだけでコンパイル・テスト・パッケージングが一気に実行できます。
実行後、targetディレクトリにJARファイル(ここでは、sampleapp-0.0.1.jar)が作成されているはずです。素晴らしいことに、ここまで何もビルドスクリプトを書いていないにもかかわらず、すでにビルドプロセスが自動化されているのです!
ちなみに、Maven2メニューの「Package Artifact」はMavenコマンドでいう「mvn package」に当たりますが、ほかの「Maven2メニュー」を含めて整理した表2を以下に示します。
| 表2 「Maven2メニュー」と対応するMavenコマンド | ||||||||||||||||||
|
[Execute Goal]を利用すれば任意のゴール(フェイズ)を実行することもできます。
[Execute Goal]では[Goal](ゴール名)、[Goal Properties](ゴール実行に必要なパラメータ)を指定するウィンドウが現れますので、そこにゴールに関する情報を入力します。Goalは「プラグイン名:プラグインのゴール」で指定します。例えば、テストを実行するときは Goalに「surefire:test」(surefireプラグインのゴールtest)を指定します。
また、[Execute Goal]はフェイズ指定でも実行できますが、ここでは割愛します。利用できるプラグインとゴールに関する情報については、Mavenプロジェクト提供のプラグイン情報サイトを参照してください。
続いて次ページでは、プロジェクトで利用するライブラリを“見える化”するさまざまな機能やテスト結果などのレポートを生成するプラグインをいくつか紹介します。
| |
1-2-3 |
| INDEX | ||
| Page1 | ||
| Antに代わるビルドツール「Maven」とは? Mavenの“肝”、「POM」と「リポジトリ」を理解する Maven利用を簡単にするプラグイン「q4e」とは? コラム 「m2eclipseとの比較」 コラム 「Mavenのインストール」 |
||
| Page2 | ||
| q4eでMavenを使ってみると、こんなに簡単! 注意! 「Javaコンパイラのエラー」 |
||
| Page3 | ||
| プロジェクトで利用するライブラリを“見える化” テスト結果などのレポート生成プラグインも豊富 Maven苦手意識は克服できるのか!? |
||
Eclipseプラグインq4eでカンタンMaven入門 バックナンバー 連載インデックスへ»
- 第1回 ビルドやテスト、依存ライブラリ追加は自動化できる!
- 最終回 Eclipse WTPを使ったWebアプリでもカンタンMaven
| Java Solution全記事一覧 |
TechTargetジャパン
- 並列分散処理の常識をHadoopファミリから学ぶ (2012/2/8)
並列分散処理の課題やHadoopの長所/短所、そして短所を補うHadoop関連プロジェクトの構成や概要などを簡単に紹介 - WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ - 新キャラ登場!スクラムやるならRedmineとALMinium (2011/12/26)
「黒板を“かんばん”にしてたら先生に怒られた(T_T)」「管理はPC内でやればいいのよ」「承知しました」
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -



![図8 [Maven Events]ビュー](05.gif)

