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

Eclipse+Maven+Tomcat7+複数プロジェクトな環境を作る

表題の環境(Seasarプロジェクト使用)を作ろうとしてたんです。

[入れるもの]
Eclipse 4.2
m2eclipse
sysdeo-tomcat 3.3(Tomcat7を使用したいので)

[忘れちゃいけない]
ふたがわさんのDevLoader改変モジュール


で、Tomcatプラグイン/プロジェクトの設定をして、EclipseからTomcatを実行したのですが、java.lang.VerifyErrorが投げられて実行できません。
よくよく調べてみると、Tomcat7用のDevLoaderがあるみたいなので、そちらを使ってみますが・・・。
改変部分が無いからClassNotFoundExceptionが出ます。さらに、.#webclasspathに記述されるpathの中でプロジェクトを参照している箇所がフルパスで記述されていませんでした。むー、動かないー。


で、作ってみた

誰かが作ってくれるのを待っててもしょうがないので、作ってみました。ベースはTomcat7のDevLoader。
https://github.com/nemuzuka/tomcat7-devloader-ex


使い方

ビルドした、devloader7-1.0.0.jarを$TOMCAT_HOME/libに配置して下さい。(元々のDevLoaderは不要です)

除外処理は、ふたがわさんの部分を丸パクリ拝借しました。
$TOMCAT_HOME/confにdevloader.confを配置すれば追加で除外設定をします。

プロジェクト参照に関しては、
$TOMCAT_HOME/confにreferencePath.confを配置します。
指定内容は、
[参照プロジェクトまでのpath,プロジェクトの出力ディレクトリのpath]
を指定します。


例えば、参照プロジェクト(app-common)が、
C:/eclipse/workspace/project
ディレクトリに配置されていて、出力ディレクトリがEclipse上で
/target/classes
と設定されている場合、referencePath.confには、

C:/eclipse/workspace/project,/target/classes

と記述します。
LoaderがLoadする際に、
C:/eclipse/workspace/project/app-common/target/classes
をクラスパスに追加します。*1


情報が見つけられなかったので無駄に頑張った気もするのですが、もっと他にいい方法があれば、教えてください。
ってか、みんなはTomcat*2で開発してないのかなー?


ちなみに

上記モジュールはTomcat7用ですが、sysdeo-tomcat 3.3でTomcat6を使う際にも同様の問題が発生したので、上記処理を組み込んだものも作成しました。
https://github.com/nemuzuka/tomcat-devloader-ex

*1:複数行指定可能で、先頭行から順番にディレクトリが存在するまで繰り返します

*2:というかそもそもJava