Maven によるプロジェクトのビルド
当ブログでは Struts, Wicket, Velocity, MyBatis など Java に関する様々なフレームワークやツールを紹介してきました。また、その際には、必要なライブラリは各サイトからダウンロードしてきて自前で用意する形を取ってきました。
しかし、実際の開発において、これらをいちいち自分でやるのは面倒ですし、また、新しいツールを導入するときには、初心の方にとってはどの jar が必要なのかわからず困難を伴います。
「こういうプロジェクトを作ってください」と指示をしたら、自動でそのプロジェクトを作ってくれて、必要な jar も全部自動で持ってきてくれる…そんな便利なツールがあればいいですよね。そうすれば、覚えるのはその便利なツールの使い方だけです。これを使うにはこれこれの jar が必要で…なんて覚える必要がなくなります。
その便利ツールこそが今回ご紹介する Maven です。Maven を使って作りたいプロジェクトのタイプを選び、プロジェクトのひな型を作ります。その際に、必要な jar ファイルは Maven が判断して自動でダウンロードします。したがって、必要な jar を自分でダウンロードしてくる手間が省けます。
Maven のインストール
以下のサイトから Maven をダウンロードします。現時点での最新版は 3.0.5 です。
Maven - Welcome to Apache Maven
ダウンロードしてきたら、apache-maven-3.0.5-bin.zip 内の apache-maven-3.0.5 フォルダの中身を適当なフォルダにコピーします。私は C:\Maven に入れました。
続いて環境変数 M2_HOME を設定します。スタートメニューの「コンピュータ」の「プロパティ」を開き、「システムの詳細設定」をクリックします。「環境変数」をクリックして環境変数 M2_HOME を作成し、値は先程 Maven のファイル群をコピーしたフォルダにします。
次に環境変数 PATH に
%M2_HOME%\bin
を追加します。
ここまでできたら、コマンドプロンプトを開いて
mvn -version
を実行してみてください。
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 22:51:28+0900) Maven home: C:\Maven Java version: 1.7.0_17, vendor: Oracle Corporation Java home: C:\Program Files\Java\jdk1.7.0_17\jre Default locale: ja_JP, platform encoding: MS932 OS name: "windows vista", version: "6.0", arch: "x86", family: "windows"
m2e のインストール
Eclipse で Maven を利用するためのプラグインである m2e があります。これを使うと Maven でビルドしたプロジェクトを Eclipse のプロジェクトとしてインポートできます。[Windows] → [Preferences] から [Install/Update] → [Available Software Sites] と進んで以下の URL を追加します。
http://download.eclipse.org/technology/m2e/releases
Maven の使用例
試しに Maven を使って Wicket Quickstart をビルドしてみましょう。ちなみに Wicket は現在 6.6.0*1が最新です。
Wicket Quickstart は以下のサイトで Maven のコマンドが生成できます。
Apache Wicket - Create a Wicket Quickstart
GroupId にはソースファイル群の入るパッケージ名を、ArtifactId にはプロジェクト名を入れます。とりあえず当サイトでは「赤猫堂本舗」の URL をとってパッケージ名は jp.mydns.akanekodou にしています。プロジェクト名は wicketapp とします。
mvn archetype:generate -DarchetypeGroupId=org.apache.wicket -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=6.6.0 -DgroupId=jp.mydns.akanekodou -DartifactId=wicketapp -DarchetypeRepository=https://repository.apache.org/ -DinteractiveMode=false
長いですがこれは 1 行で入力します。コピーしてコマンドプロンプトに張り付けられますのでその方が間違いがなくて良いでしょう。Eclipse のワークスペースのフォルダに移動してこのコマンドを実行してください。
実行するとしばらくの間いろいろなメッセージが出ますが、最終的に
[INFO] BUILD SUCCESS
と表示されればビルドは成功です。
次に Eclipse を起動して今作った Maven プロジェクトをインポートします。Project Explorer を右クリックして [Import] → [Import...] を選択します。その中に [Maven] というのがありますので、メニューを展開して [Existing Maven Project] を選択して [Next >] をクリックします。
[Root Directory] にワークスペースのディレクトリを入れると、そのディレクトリ内を検索して pom.xml を見つけてきます。pom.xml は Maven プロジェクトのルートディレクトリに配置されていて、このファイルの有無で Maven プロジェクトかどうかを判断します。
/wicketapp/pom.xml にチェックを入れて [Finish] をクリックするとプロジェクトのインポートが始まります。
インポートが終わると Project Explorer に wicketapp というプロジェクトができているはずです。ちなみにこんなフォルダ構成になっています。
見てお分かりの通り、これは動的 Web プロジェクトではありませんので、Server に追加してホットデプロイすることはできません。しかし、src/test/java の中に Start.java というのがあります。これを Java アプリケーションとして実行すると、プロジェクト内に Jetty という Web アプリケーションサーバが組み込まれているので、それを起動してこのプロジェクトを実際に動かすことができます。また、war ファイルとしてエクスポートすれば、自動的に Web アプリケーション向けのフォルダ構成に変換してエクスポートしますので、自分でいちいちフォルダ構成を直す必要はありません。もちろん、このプロジェクトは Wicket アプリケーションのひな型としてそのまま使えますので、このプロジェクトに手を加えて自分だけの Wicket アプリケーションを作成することもできます。
Maven はこんなことにも使える
他にも、Maven を使って、JVM 上で動作するスクリプト言語である Scala のプロジェクトや Groovy のプロジェクトを作成することができます。ここで重要なのが「Scala や Groovy をあらかじめインストールしておく必要はない」ということです。これらに関しても、Maven は必要なライブラリを自動でダウンロードしてくれるので、開発目的であれば何ら不自由がないのです。
Maven は必要不可欠になる ?
フレームワークの巨大化に伴い、プロジェクトを手動で管理することは困難な状況になりつつあります。プロジェクトの管理を自動化する Maven は、これからの開発においては必要不可欠と考えておいて間違いありません。Maven の使い方さえ覚えてしまえば、もう jar ファイルの依存関係に頭を悩ませる必要はありません。開発に集中するためにはマスターしておきたいツールです。
Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集
- 作者: Srirangan,長尾高弘
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2012/03/02
- メディア: 大型本
- 購入: 7人 クリック: 89回
- この商品を含むブログ (12件) を見る
*1:バージョンの表記が変わっていますが、1.5.x 系統からの大幅な変更は特にありません。