Maven2のインストールから基本的な使い方までを振り返ってみます。
Maven2とは、
です。w
以下の手順では、Javaはすでにインストールされているものとします。
Maven2とは、
Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
です。w
以下の手順では、Javaはすでにインストールされているものとします。
インストール
ダウンロードページから適当なのをダウンロードして適当なフォルダに展開します。(現時点での最新版は2.0.9。)環境変数に設定を追加します。
- Windows系の場合
システムのプロパティを開いて(Winキー + Pause + Vistaの場合は「設定と変更」)、「詳細設定」タブから「環境変数」をクリックして環境変数ダイアログを表示。(以下はMaven2をC:\apache-maven-2.0.9に展開した場合。)- 変数 M2_HOME に値 C:\apache-maven-2.0.9 を設定。(末尾に \ は含めない。)
- 変数 M2 に値 %M2_HOME%\bin を設定。
- 変数 Path に ;%M2% を追加。
動作確認> mvn -version Maven version: 2.0.9 Java version: 1.6.0_xx OS name: "windows vista" version: "6.0" arch: "x86" Family: "windows"
- 変数 M2_HOME に値 C:\apache-maven-2.0.9 を設定。(末尾に \ は含めない。)
- Unix系の場合
環境変数を設定します。(以下はbashで、Maven2を/usr/local/apache-maven-2.0.9に展開した場合。)- export M2_HOME=/usr/local/apache-maven-2.0.9
- export M2=$M2_HOME
- export PATH=$PATH:$M2
動作確認$ mvn -version Maven version: 2.0.9 Java version: 1.6.0_xx OS name: "linux" version: "2.6.9-42.0.3.el" arch: "i386" Family: "unix"
使い方
Maven2を使ってwebappの雛形を生成し、Jettyを使って起動する例。初回起動時はいろいろなモジュールをダウンロードするので時間がかかる場合があります。
プロジェクトの生成
Maven2のarchetypeプラグインを使ってプロジェクトの雛形を生成します。$ mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=sample -DartifactId=sample-webapp -Dversion=0.0.1-SNAPSHOT
$ cd sample-webapp
途中で設定の確認のためのプロンプトがでるので、そのままエンター。
warファイルの生成
サーブレットコンテナにデプロイするためのwarファイルを生成します。$ mvn package
targetフォルダにsample-webapp.warファイルが生成されています。
このままtomcatなどのサーブレットコンテナにデプロイすることでWebアプリとして利用できるようになります。
pom.xmlの修正
Jettyサーバーを使うため、pom.xmlのbuildタグの中に下記のようにpluginsタグを追加します。<build>
<finalName>sample-webapp</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>
</build>
Jettyの起動
Jettyを起動し、ブラウザで動作確認をします。$ mvn jetty:run-war
http://127.0.0.1:8080/sample-webappにアクセスして「Hello World!」が表示されればオッケー。
このように、Maven2を使えばプロジェクトの雛形生成からパッケージング、Jettyサーバーでの起動まで、また依存ライブラリの自動収集も簡単に利用することができます。