MavenのデフォルトのWebアプリケーション構成を検討してください(テストケースでは、 https: //repository.apache.org/content/groups/public/archetype-catalog.xmlのstruts2-blank-archetypeを使用しました)。
このアーキタイプには、maven jettyプラグインのバージョン6が付属しています。以下の構成で、/ src / main / webapp / WEB-INF /の下のjspを変更して保存すると、ブラウザーを更新するとこれらの変更が表示されます。
<plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>6.1.21</version> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> </configuration> </plugin>
(jspを変更するだけで完全なコンテナーのリロードは必要ないため、scantarget要素を配置する必要さえないことに注意してください)。
ただし、プラグインのバージョン8(以下を参照)とまったく同じ構成は機能しません。同じjspを変更すると、ブラウザを更新すると古いJSPコンテンツが表示されます。サーバーを停止して起動するだけで、変更が表示されます。
<plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>8.1.7.v20120910</version> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> </configuration> </plugin>
この構成の何が問題になっていますか。また、バージョン8で同じ結果が得られる構成(つまり、サーバーを再起動せずにjspの内容を自動更新する)は何ですか。
編集: これがあなたが試すことができる2分のテストです:
- アーキタイプstruts2-archetype-convention( "mvn archetype:generate"、308、パッケージ戦争)を作成します。
- pomを編集し、jettyプラグインの構成を上記の構成に設定します(バージョン6)
- mvn jetty:run
- 「http:// localhost:8080」でブラウザを開きます
- ページの「言語」を参照してください
- /src/main/webapp/WEB-INF/content/hello.jspを編集します-「言語」を別のものに変更します。保存する。
- ブラウザを更新して、変更を確認します。
- 手順を繰り返します。手順2で、artifactIdとバージョンを上記のバージョン(バージョン8)に変更します。
- JSPで変更を実行した後、更新時にWebページが変更されないことを確認します。