maven2 with Sysdeo tomcat plugin まとめ
maven2のwarプロジェクトとtomcat pluginの組み合わせでちゃんと動作するようになるまでの手順を以下にまとめておく。
- tomcat plugin 3.2.1(私のパッチを当てたもの)に入れ替える。
- warプロジェクトのsrc/main/webapp/WEB-INF/libの中身は空にする。
- HttpServletRequestやFilterなど、servlet-apiのクラス・インターフェースを使っているクラスが含まれる場合は、以下の手順で別のプロジェクトに切り出す。
- servlet-apiのdependencyを無くす(アンリンクによる各クラスの赤×を出させる)。
- サーブレット関係をまとめるMAVAN2プロジェクトを新規作成。
- 元のプロジェクトでservlet-apiがアンリンクになったためにコンパイルエラーになったクラス全てを新プロジェクトに移動する。
- 新プロジェクトには、servlet-apiのdependencyをscope=providedで追加。
- 新プロジェクトでアンリンクになる元プロジェクト上の依存クラスを全て移動。
- 新しいプロジェクトでリンクエラーになるライブラリ(dependency)を元プロジェクトから新プロジェクトのPOM内に移動。
- 旧プロジェクトのdependencyに新しいプロジェクトを追加。
- ※※ちなみにS2Strutsを使う場合は、jarからactionやdtoを扱えるようにするために、enableJarやjarFilePatternの指定が必要。参考
- 元のプロジェクトの右クリックメニューから「Tomcat-Tomcatのライブラリーをプロジェクトに追加」を行う
- 出力ディレクトリは target/classesではなく、src/main/webapp/WEB-INF/classesにする*1。
- 開発中クラスローダーのクラスパス(プロジェクトプロパティ-tomcat)へは、次を設定する