読者です 読者をやめる 読者になる 読者になる

Webアプリ開発のTIPS

maven2

サードパーティライブラリ

maven2に対応していないライブラリの場合は、ローカルリポジトリに登録する作業が必要だったりします。
http://wiki.fdiary.net/maven2/?CookBook#l13

でも、maven-archetype-webappなmavenプロジェクトであれば次のようなさぼり技が使えます。

  • src/main/webapp/WEB-INF/lib配下にmaven2非対応ライブラリのjarファイルを格納する。

これだけです。
後はいつものようにmvn packageなどでパッケージングするだけ。

そうすると、src/main/webapp/WEB-INF/libの中身がtarget//WEB-INF/libにコピーされた「後」、pom.xmlで設定された依存ライブラリが「上書き」コピーされます。
「後」と「上書き」というところがポイントで、pom.xmlの依存ライブラリで指定されたものがlib配下に含まれていても、ローカルリポジトリから再度取得されて上書きされます。同名のファイルがlib配下に存在していてもpom.xmlでの設定の方が優先されるわけです。

Eclipseのビルドパス

上記の場合、Eclipseでコンパイルするためにビルドパスにsrc/main/webapp/WEB-INF/lib配下の個々のライブラリを指定しておく必要があります。
しかしこれ、mvn eclipse:eclipseをするたびにクリアされてしまうので(M2_REPO系のライブラリ設定が更新される代わりに独自に追加したものは消えてしまう)、実際のところpom.xmlの依存ライブラリを更新するたびに、mvn eclipse:eclipse → ビルドパス再設定を行う必要があります。

ちょっと面倒ですが、(s2buriとか)maven2非対応のライブラリ数が多い場合、1つずつローカルリポジトリに登録するよりはましかなと今のところ割り切って使っています。

EclipseTomcat連携動作確認

Webアプリケーションののルートとするサブディレクトリ(任意)をtarget/にすればOK。
ソースを変更した後は mvn packageをすれば反映されます。