【问题标题】:Jetty autorefresh/autoload for quick testingJetty 自动刷新/自动加载以进行快速测试
【发布时间】:2011-10-06 20:36:18
【问题描述】:

在 PHP 中,我习惯于只保存 .php 文件并在修改源文件后重新加载浏览器。如何使用 JAVA 和 Jetty 做到这一点?当我保存我的网络服务时,我当前停止了码头服务器并使用mvn jetty:start 重新启动它,到达我想去的地方的简单方法是什么?

【问题讨论】:

  • jsps 还是 servletS?你在使用 IDE 吗?
  • Servlets 与 Eclipse,我使用 mvn jetty:start from the shell 运行 Jetty。

标签: java maven-2 jetty


【解决方案1】:

从命令行:

mvn -Djetty.reload=automatic -Djetty.scanIntervalSeconds=2 jetty:run

如果您依赖 Eclipse,请确保您已启用 Project->Build Automatically 以便重新编译类。

我没有尝试过配置文件的方法,但是更多关于 Jack Murphy 的方法的细节可以在这里找到:http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin

【讨论】:

  • 太棒了!这会重新加载静态资源和重新编译的类 - 完美。
  • 我是否应该将这些命令行参数粘贴到 Run Configurations -> J2EE Preview at localhost -> Arguments -> Program Arguments 中?好吗?谢谢。
  • 但是这里服务器正在重启?这又占用了很多时间。在这里这样做有什么意义?
  • 因为 Java 不是解释型语言,所以必须重新加载类。我同意这让 Java web 开发人员很痛苦,所以我倾向于尽可能多地依赖单元测试来进行快速测试。我的答案旨在从命令行运行,但可以在运行配置中的“Maven Build”部分下的 Eclipse 中配置(使用 M2E 插件)
  • 如果服务器启动需要很长时间,那可能是因为您对带注释的服务类等进行了类路径扫描。我更喜欢在不运行 jetty-maven-plugin 的情况下使用嵌入式码头实例。
【解决方案2】:

嗯,PHP 和 Java 的区别在于前者是解释器,而后者是基于编译器的(二进制)。在 PHP 中,代码在执行时进行验证,而在 Java 中,您需要先编译它。在 Java 中,当您使用 JSP-s 时,可以通过点击浏览器中的刷新按钮来保存它们并重新加载它们(当然,如果它在开发模式下运行)。如果您更改课程,则需要重新启动服务器。如果您只是更改 Web 资源,您可以简单地为 Jetty Maven 插件定义 scanInterval 变量。这将负责更新您的网络资源。

[已编辑] 在下面添加了 Jack Murphy 评论中的代码,使其格式正确。

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>maven-jetty-plugin</artifactId>
    <configuration>
        <scanIntervalSeconds>2</scanIntervalSeconds>
    </configuration>
</plugin>

【讨论】:

  • 您建议的代码是将 pom.xml 修改为如下&lt;plugins&gt; &lt;plugin&gt; &lt;groupId&gt;org.mortbay.jetty&lt;/groupId&gt; &lt;artifactId&gt;maven-jetty-plugin&lt;/artifactId&gt; &lt;configuration&gt; &lt;scanIntervalSeconds&gt;2&lt;/scanIntervalSeconds&gt; &lt;/configuration&gt; &lt;/plugin&gt; &lt;/plugins&gt;,它就像一个魅力。
【解决方案3】:

迟到的答案。在 IntelliJ 中,Resource/class/frontend 修改可以通过以下步骤在不重启服务器的情况下刷新。

1:编辑服务器配置中的“更新操作”部分。

2:每次进行上述修改时。点击最后一个按钮。

然后刷新浏览器。就是这样。

【讨论】:

    猜你喜欢
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 2023-03-29
    • 1970-01-01
    • 2017-11-27
    • 2021-07-07
    • 2015-06-29
    相关资源
    最近更新 更多