maven

基本使用法はだいたいわかった。トラブルシュートの解き方もなんとなく掴めた。
では、実プロジェクトへの適用を考える。eclipse+tomcatでのノーデプロイ更新検出だ。
これできなきゃダメダメ!
・・・実はいまだにantでシコシコ書いてるプロジェクトをeclipse+tomcatでオンザフライ更新検出させる手法を確立していない。mavenより先にantで組んでる場合ので考えてみるか。

  • ant系とtomcatで何が問題になるか

ズバリ、webappを組み立てるのにantでリソースコピー,native2ascii,JSPコピーやってるところで引っかかる。JSPを更新するたびに いちいちcpに相当するant,or mavenのコマンドをたたく
ことになるからだ。実際にはこれが deploy,depends war,compile,resource copy ...
などになるので更に時間がかかる。いくらライブラリ、ツールが充実していて自分で作りこむ個所が少ない状態に持っていっても 結局コンパイルタイムが開発ボトルネックになるのだ。LL系言語に勝てる気がしない。でeclipseだとクラスはホットコンパイル(っつーのかな)状態に持っていけるので.javaなファイルは問題なくなるが、コンテナが認識するリソースをどうするか。eclipseでファイル更新=>自動でtomcatが検出っつー感じが理想的。

で、一つの解としてはantでリソースコピーを行わない、かな。webapp-docrootを/src/webapp-name/(WEB-INFがあるとこ) に割り当て、直接読ませる。
native2asciiのようなアホなタスクが必要な場合はリソース元は別ディレクトリに置いておいてsrc/webapp 以下に上書きしちゃう。これだとsrc以下に同じリソースが混在することが問題になるので src/webapp/WEB-INF/classes 以下はCVS管理しないなどの決め打ちルールなどで適当に対応。
これで問題出ることあるかな・・・。xdocletとか中間コンパイル的作業が必要になると結局このあたりの問題に突き当たるので、統一的な解法を求めている。

この人なんか頭悪いこといってんなー、こうすりゃいいのに、と感じた人は是非そのやり方を教えて下さい m(_ _)m

maven +tomcat hotdeploy? "on the fly compile" あたり でググって調べるか。