最近まで1つのMaven WARプロジェクトまで使用していました。Tomcat MavenプラグインとマルチモジュールMavenプロジェクト
mvn tomcat:run
我々は組み込みTomcatインスタンスの実行中にJSPファイルを変更することができましたし、変更がうまくWebブラウザに表示されます:私たちは、使用してローカルの開発者のワークステーション上でアプリケーションを実行するためのTomcat Mavenプラグインを使用していました。私は(プラグインのドキュメントから)tomcat:runゴールを使用すると、WARが動的Webアプリケーションとしてロードされるため、ソースでJSPファイルに加えられた変更は、実行時に再起動せずにTomcatによって取得されることを理解しています。
アプリケーションがかなり大きくなっているため、Webプロジェクト以外のいくつかの場所で多数のクラスを再利用する必要があったため、コードベースをマルチモジュールのMavenプロジェクトにリファクタリングしました。構造は以下のようになります。
parent Maven POM
|
---- artifact1.jar
|
---- artifact2.jar -> depends on artifact1.jar
|
---- artifact3.jar -> depends on artifact1.jar
|
---- artifact4.jar -> depends on artifact2.jar and artifact3.jar
|
---- artifact5.war -> depends on artifact1.jar, artifact2.jar, artifact3.jar and artifact4.jar
我々はTomcatを使用することができませんでしたリファクタリング後:プラグインとしてWARプロジェクトを実行するために、プロジェクトのルートディレクトリから実行がJARアーティファクトを検出することができませんでした。そこで、私たちはtomcat:run-war-onlyプラグインを使用するように切り替えました。 WARモジュールが正常に起動します。
しかし、ドキュメントからは、WARファイルをパッケージ化されたWebアプリケーションとして扱うようになっているようです。したがって、JSPファイルに加えた変更は、実行中に埋め込みTomcatサーバーによって取得されません。 JSPファイルを変更するたびに、サーバーを再起動する必要があります。
WARプロジェクトを動的Webアプリケーションとして実行するように設定されたこのマルチモジュールMavenには、少なくとも再起動せずにTomcatがJSPファイルの変更を取得する方法がありますか?
Maven 3.xとTomcat7 Mavenプラグインでは、 'mvn -am -pl artifact5 tomcat7:run'コマンドは正常に動作します。 – manish