DATE : 2006/07/09 (Sun)
Maven プロジェクトを作る
プロジェクトを配置したいディレクトリ(例えば、Eclipse のワークスペースディレクトリなど)で以下のコマンドを実行します。
「<~>」の部分は、作成したいプロジェクトによって置き換えてください。
mvn archetype:create -DgroupId=<groupId> -DartifactId=<artifactId> -DarchetypeArtifactId=maven-archetype-webapp
コマンドを実行すると、Maven プロジェクトが作成されます。作成されるディレクトリは、 artifactId と同じ名前になります。
Eclipse のプロジェクトファイルの生成
作成したプロジェクト内で、以下のコマンドを実行します。すると、Eclipse のプロジェクトファイルが生成されます。
mvn eclipse:eclipse
なお、Eclipse に m2eclipse プラグインをインストールしておくと便利です。
依存するライブラリの設定
ここでは、単純なサーブレットを開発することを前提に話を進めます。
サーブレットを開発するには、サーブレット API が必要です。
そこで、pom.xml に以下の内容を追記します。
なお、「...」は省略部分を表します。
<project>
...
<dependencies>
...(他の依存ライブラリがある場合)
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
<dependencies>
...
</project>
サーブレット API は、ビルド時には必要ですが、配置時には必要ない(サーブレットエンジンが API を持っている)ため、スコープを provided としています。
ディレクトリ構成
Maven を用いてウェブアプリケーションを開発する際のディレクトリ構成で主なものを以下に挙げます。
- src/main/java
- サーブレットなどのソースコードを格納するディレクトリです。
- src/test/java
- テストコードを格納するディレクトリです。
- src/main/resource
- リソースを格納するディレクトリです。ビルド時に、クラスファイルと同じディレクトリにコピーされます。
- src/main/webapp
- JSP ファイルや HTML ファイルなどのページを格納するディレクトリです。直下に WEB-INF ディレクトリがあります。
Maven2 Jetty Plugin を使う
これでウェブアプリケーションを開発できるようになりました。しかし、開発したウェブアプリケーションを試しに実行する環境がまだ整っていません。
Maven2 Jetty Plugin を使うと、ソースコードや JSP ファイルなどの変更を監視し、自動的にサーブレットエンジンに再配置してくれます。また、 Maven2 Jetty Plugin そのものがサーブレットエンジンなので起動が早く、試しに実行するには最適です。
Maven2 Jetty Plugin を使用するには、まずプラグインのインストールが必要です。そのために、Maven2 Jetty Plugin のある Maven リポジトリを pom.xml に記述します。
<project>
...
<pluginRepositories>
<pluginRepository>
<id>mortbay-repo</id>
<name>mortbay-repo</name>
<url>http://www.mortbay.org/maven2/snapshot</url>
</pluginRepository>
</pluginRepositories>
...
</project>
そして、Maven2 Jetty Plugin の設定を記述します。
<project>
...
<plugins>
...
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
</configuration>
</plugin>
...
</plugins>
...
</project>
「scanIntervalSeconds」は、ファイルの変更を監視する間隔を秒単位で表したものです。ここでは、10秒間隔で監視するように設定しています。
Maven2 Jetty Plugin を実際に使用するには、Maven プロジェクトのディレクトリ内で以下のコマンドを実行します。
mvn jetty:run
このコマンドを実行すると、Jetty サーバが立ち上がります。
なお、mvn に「-e」オプションを付けると、例外が発生した場合に、スタックトレースを表示させることができます。
標準では、「http://localhost:8080/<artifactId>」にアクセスすると、ウェブアプリケーションにアクセスできます。
Jetty サーバを終了するには、コマンドを実行したコンソールで「Ctrl+C」を押します。
参考文献
- Maven - Guide to Webapps
- Maven2 War Plugin - Rapid testing during development with the jetty6 plugin
- Maven2 の Tips を集める Wiki
- Maven2 Jetty Plugin
- Better Builds with Maven