home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

日記/2012/02/26/MavenでServletプログラミングを準備したメモ

日記/2012/02/26/MavenでServletプログラミングを準備したメモ

日記 / 2012 / 02 / 26 / MavenでServletプログラミングを準備したメモ
id: 1063 所有者: msakamoto-sf    作成日: 2012-02-26 19:51:12
カテゴリ: Java 

Maven3, Jetty8, Eclipse 3.7(Indigo), m2eclipse 前提

mvn archetype:generate

で、org.codehaus.mojo.archetype:webapp-xxyy でプロジェクト作成。バージョンは適当に選ぶ。今回はwebapp-jee5を選択。

340: remote -> org.codehaus.mojo.archetypes:webapp-j2ee13 (-)
341: remote -> org.codehaus.mojo.archetypes:webapp-j2ee14 (-)
342: remote -> org.codehaus.mojo.archetypes:webapp-javaee6 (-)
343: remote -> org.codehaus.mojo.archetypes:webapp-jee5 (-)

codehausのarchetypeを選択するメリットとしては、src/main/java 以下のパッケージまでが展開されること。org.apache.maven.archetypes:maven-archetype-webappだと src/main/webapp/ までしか作ってくれない。

このあとEclipseで既存のMavenプロジェクトとしてインポートし、適当にServletクラス作成して、web.xmlに適当に登録する。
プロジェクト右クリックで Maven Build みたいなのを選択し、ゴールに "package" を指定して実行すれば target/ の下にwarファイルが作成される。

これを実行するためにTomcatを使うという手法もあるが、今回はJettyを使ってみる。

pom.xmlに上記ドキュメントに指定されたとおりに jetty-maven-plugin を追加し、EclipseでMavenの "jetty:run" ゴールを指定してデバッグ実行する。
ただこれだけだとソースコードが対応付けられていない。Debugパースペクティブを開きJettyのプロセスを右クリック→ "Edit Source Lookup" ソース探索パスを追加する。プロジェクト単位で追加できるし、Workspaceでごっそりと追加することも可能。
これでブレークポイントなどがソースコードと連携し、デバッグしやすくなる。

Maven + Jettyの何がよいかというと、test系と相性が良くなるようなきめ細かい設定が可能となっている。上述のドキュメントでは 「jetty:start : Starting jetty without first executing the build up to "test-compile" phase」のセクションで integration-test の前後で自動的にJettyを起動・停止するような設定例が書かれている。
またTomcat系の独立したWebApplicationServerと異なりwarファイルのデプロイ、それにともなうサーバのセットアップや設定の調整が不要な点も評価できる。

参考:Maven + Tomcatの例


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2012-02-26 20:10:14
md5:179371b7b2ed5d3830b701847996275f
sha1:d3b5af9c992a678b7eb78f877de6564b3581ad7f
コメント
コメントを投稿するにはログインして下さい。