MavenとeclipseとjettyでWEBアプリ作成環境を作る


Mavenは、eclipseに頼ってコントロールしようとすると辛くなるのが以下の2点。

  • eclipse用のMavenプラグインを入れてもあまり相性がよくない。
  • 大規模なプロジェクトになるとMaveneclipseで動かすのは、かなりメモリを積んでないと厳しい。

Mavenの設定管理はアーキテクト担当者1人がやればいいようなもので、実装者は必要なmvnをeclipseで実行し、いざとなったらコマンドでも実行できる状況になっていればいいのかな〜ということで、作る環境としては、eclipseよりMavenに頼る感じの設定手順。

以下、elipseはインストールしてあるものとして説明します。jettyはMavenプラグインで設定するだけなので別途インストールは不要です。

Mavenをダウンロードする

ダウンロードサイトからダウンロードして解凍。

環境変数を設定する

変数名 値の例
PATH 解凍したMavenのbinのディレクト C:\...\maven-2.0.7\bin
JAVA_HOME javajdkディレクトリを設定する C:\Program Files\Java\jdk1.6.0

Mavenの確認

コマンドプロンプトで以下のように入力して

C:\>mvn -version

以下のように表示されればOK。

Maven version: 2.0.7
Java version: 1.6.0
OS name: "windows xp" version: "5.1" arch: "x86"

MavenでWEBアプリの雛形作成

例えば「C:\eclipse\workspace\」に「myapp」っていうWEBアプリを「jp.co.mvnsample」というパッケージで作るなら以下のように入力して雛形作成。

C:\eclipse\workspace>mvn archetype:create -DgroupId=jp.co.mvnsample -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-webapp

以下のように出ればOK。

・
・
[INFO] Archetype created in dir: C:\eclipse\workspace\myapp
[INFO] ----------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ----------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Thu Oct 04 17:07:59 JST 2007
[INFO] Final Memory: 5M/9M
[INFO] ----------------------------------------------------

Maveneclipse用設定ファイルを作成

例えばeclipseワークスペースが「C:\eclipse\workspace」の場合、以下のように入力。

mvn -Declipse.workspace=C:\eclipse\workspace eclipse:add-maven-repo

これで、${workspace}\.metadata\.plugins\org.eclipse.core.runtime\.settingsにある「org.eclipse.jdt.core.prefs」ていうファイルに以下の記述が追加される。

org.eclipse.jdt.core.classpathVariable.M2_REPO=C\:/Documents and Settings/ユーザー名/.m2/repository

つまりMaven用ローカルリポジトリの場所を設定している。

Maveneclipse用プロジェクト設定ファイルを作成

WEBアプリの雛形のルートに移動する。

C:\>cd C:\eclipse\workspace\myapp

eclipseの設定ファイルを作成。

C:\eclipse\workspace\myapp\>mvn -DdownloadSources=true eclipse:eclipse

これで、myappディレクトリに「.project」、「.classpath」ファイルと「target」ディレクトリが作成される。
※「-DdownloadSources=true」を指定することで、Mavenリポジトリにソースファイルも登録されている場合はソースファイルもダウンロードされ、eclipseで参照できるようになります。便利なので、とりあえず毎回指定しておきましょう。

eclipseにm2eclipseプラグインのインストール

http://m2eclipse.codehaus.org/Flash動画を見ながらインストール。

m2eclipseプラグインの設定

eclipseの「ウィンドウ」→「設定」→「Maven2」→「Local Repository Folder」→「参照」でローカルリポジトリ「C:\Documents and Settings\ユーザー名\.m2\repository」を設定して「OK」。

eclipseのクラスパス変数追加

eclipseの「ウィンドウ」→「設定」→「Java」→「ビルド・パス」→「クラスパス変数」→「新規」で「名前」に「M2_REPO」と入力し、「ローカルリポジトリ」に「C:\Documents and Settings\ユーザー名\.m2\repository」を設定して「OK」。

eclipseでインポート

eclipseの「ファイル」→「インポート」→「一般」→「既存プロジェクトをワークスペースへ」→「ルートディレクトリーの選択」→「参照」で、「パス」Mavenで作成した雛形アプリのルート「C:\eclipse\workspace\myapp」を設定して「終了」。

pom.xmlの設定

pom.xmlの「build」エレメントの中に以下のように「plugins」「plugin」エレメントを記述。

・
・
  <build>
    <finalName>myapp</finalName>
    <plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>maven-jetty-plugin</artifactId>
        <configuration>
          <contextPath>/myapp</contextPath>
          <scanIntervalSeconds>10</scanIntervalSeconds>
          <connectors>
            <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
              <port>8080</port>
              <maxIdleTime>60000</maxIdleTime>
            </connector>
          </connectors>
        </configuration>
      </plugin>
    </plugins>
  </build>

eclipseで動作確認

pom.xmlを右クリック→「実行」→「Maven2 build」→「Goals」に「jetty:run」を入力して実行して、以下のようにeclipseのコンソールに出力されることを確認。

・
・
[INFO] Started Jetty Server
[INFO] Starting scanner at interval of 10 seconds.

※初回起動時は結構時間かかります。

ブラウザで動作確認

http://localhost:8080/myapp/にアクセスして「Hello World!」って表示されればOK。


あとは、「dependencies」エレメントに「javax.servlet」、「struts」とか追加して、DB設定追記して・・は、また今度。