考虑 Maven 中的默认 webapp 配置(对于测试用例,我使用了来自 https://repository.apache.org/content/groups/public/archetype-catalog.xml 的 struts2-blank-archetype)。
此原型(prototype)随 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>
(notice that one doesn't even need to put the scantarget element, as we don't want a complete container reload when you just change a 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 分钟的测试:
- 创建原型(prototype) struts2-archetype-convention(“mvn archetype:generate”,308,package war)。
- 编辑 pom 并将 jetty 插件配置设置为上面列出的配置(版本 6)
- mvn jetty :运行
- 打开浏览器“http://localhost:8080”
- 查看页面上的“语言”
- 编辑/src/main/webapp/WEB-INF/content/hello.jsp - 将“语言”更改为其他内容。保存。
- 刷新浏览器并查看更改。
- 重复这些步骤。在第 2 步中,将 artifactId 和版本更改为上面列出的那些(版本 8)
- 在 JSP 中执行更改后,确认网页不会在刷新时发生更改。
最佳答案
自 jetty-6 天以来,该插件已进行了大量改进,以运行各种不同的项目配置。查看插件的文档页面,选择最能满足您需求的方案并根据需要调整配置。我怀疑您的情况属于“运行未组装的网络应用程序”。
http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin
我会注意到,对于 jetty-9,我们最终将插件带到了 eclipse,这样它就可以与将 groupId 更改为 org.eclipse.jetty 的项目一起使用,这是 9.0.0 的 jetty-maven-plugin .M2 将在下周初发布(相关文档也将更新)
干杯
关于eclipse - 什么 maven-jetty-plugin 8 配置允许在 JSP 文件更改时重新加载它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13092601/