量産メモ帳

忘れっぽいのでメモを残しています。

Maven3 で war ファイルをビルドする。

スポンサーリンク

事前条件:

  • Eclipse-4.2 (Juno)
    • m2e プラグインをインストール済み。
    • "Dynamic Web Project"(動的 Web プロジェクト)を作成済み。
  • Maven-3.0.4
  • Tomcat-7.0.33
    • ホスト名"localhost"、ポート番号"8080"で起動済み。



まずハマったのは、pom.xml の書き方。




war






org.apache.maven.plugins
maven-war-plugin

${basedir}/WebContent









まず、packaging に war を指定しないと、"mvn war:war"を実行した時に、

[INFO] Skipping non-war project

というメッセージが出力されて、war ファイルのビルドがスキップされてしまう。



それから、warSourceDirectory を指定したのは、Eclipse 上で「動的 Web プロジェクト」を作成した時のディレクトリ階層が、Maven の想定と異なるため。
例えば、Web コンテキストのルートディレクトリは以下の通りになる。*1

  • Eclipse (動的 Web プロジェクト) … WebContent
  • Maven … src/main/webapp

webXml も指定している例も見かけたけど、私の環境では warSourceDirectory を指定しただけで大丈夫だった。


*1:プロジェクトの基底ディレクトリからの相対パス