eclipse - 什么 maven-jetty-plugin 8 配置允许在 JSP 文件更改时重新加载它们?

标签 eclipse maven struts2 jetty maven-jetty-plugin

考虑 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 分钟的测试:

  1. 创建原型(prototype) struts2-archetype-convention(“mvn archetype:generate”,308,package war)。
  2. 编辑 pom 并将 jetty 插件配置设置为上面列出的配置(版本 6)
  3. mvn jetty :运行
  4. 打开浏览器“http://localhost:8080”
  5. 查看页面上的“语言”
  6. 编辑/src/main/webapp/WEB-INF/content/hello.jsp - 将“语言”更改为其他内容。保存。
  7. 刷新浏览器并查看更改。
  8. 重复这些步骤。在第 2 步中,将 artifactId 和版本更改为上面列出的那些(版本 8)
  9. 在 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/

相关文章:

java - Android:使用 Eclipse 构建我的应用程序的不同版本(免费、高级等)

java - 为什么我的程序在Eclipse和Maven中清理后可以运行?

c++ - 将编译器开关添加到 Eclipse CDT 内置编译器设置生成?

java - Dockerfile Maven插件:找不到插件

spring-mvc - Model、View、Controller的Spring MVC对应组件有哪些?

java - Struts2 中 Requestprocessor.processLocale 方法的等效项是什么?

android - 迁移到 Android Studio 时出现错误

maven - 我如何在Apache Camel 中使用Elasticsearch 2.2.1

java - 是否可以使用 java 12 创建 spring boot maven 项目?

java - 如何使用 <s :a> in Struts2? 将数据从 JSP 发送到 Action