考虑 Maven 中的默认 webapp 配置(对于我使用来自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>
(请注意,甚至不需要放置 scantarget 元素,因为我们不希望仅在更改 jsp 时重新加载完整的容器)。
但是,与插件版本 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, package war)。
- 编辑 pom 并将 jetty 插件配置设置为上面列出的配置(版本 6)
- mvn码头:运行
- 在“http://localhost:8080”上打开浏览器
- 请参阅页面上的“语言”
- 编辑 /src/main/webapp/WEB-INF/content/hello.jsp - 将“语言”更改为其他内容。节省。
- 刷新浏览器并查看更改。
- 重复这些步骤。在步骤 2 中,将 artifactId 和版本更改为上面列出的(版本 8)
- 确认在 JSP 中执行更改后网页不会在刷新时更改。