【问题标题】:Incremental hot deployment on Tomcat with Maven and NetBeans使用 Maven 和 NetBeans 在 Tomcat 上进行增量热部署
【发布时间】:2011-02-14 23:02:32
【问题描述】:

我正在使用 NetBeans 6.8、Tomcat 6 和 Maven 2.2,并希望在保存文件后立即在浏览器中查看我的代码更改(显示 http://localhost:8080)。

tomcat-maven-plugin有如下配置:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>tomcat-maven-plugin</artifactId>
  <version>1.0-beta-1</version>
</plugin>

根据输出,它应该执行就地部署。

如何在浏览器中立即查看 Java 代码的更改?

【问题讨论】:

    标签: java tomcat netbeans maven hotdeploy


    【解决方案1】:

    我花了很多时间试图完成这项工作。最后我只使用了码头。我把这个:

       <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>${jetty.version}</version>
                <configuration>
                    <reload>automatic</reload>
                    <scanIntervalSeconds>5</scanIntervalSeconds>
                </configuration>
       </plugin>
    

    也许所有参数都不正确,但后来我创建了一个自定义目标“jetty:run” 我用那个。我无法使用绿色的大播放按钮“运行”,但码头部署运行良好,它可以热部署 Java 类中的任何更改。

    【讨论】:

      【解决方案2】:

      看看JRebel。它应该做你想做的事。无痛。

      【讨论】:

        【解决方案3】:

        看看Hot Deployment of a Web Application with Maven in NetBeans。我还建议查看Glassfish Hot Code Re-deployment (on Maven),尤其是关于保存时编译的帖子,并尝试使用 GlassFish,您可能会得到更好的结果。

        【讨论】:

        • 我在 GlassFish 上有同样的行为。唯一发生的事情是我在 GlassFish 试用后无法在项目设置中选择“Tomcat”:-(
        【解决方案4】:

        使用 tomcat:inplace 目标从其编译的类和源调用您的 web 应用。

        您可能会在 Windows 上遇到文件锁定问题。有几个workarounds,例如antiJarLocking contet 属性,但基本上这归结为您的webapp 没有正确关闭,在几次重新加载后最终会耗尽您的VM 内存。就我而言,我使用的是 Spring,“正确”的修复方法是在一些关键 bean 上添加一个销毁方法,以便应用程序正常关闭。

        Maven Tomcat Plugin - tomcat:inplace

        【讨论】:

          猜你喜欢
          • 2011-02-16
          • 1970-01-01
          • 1970-01-01
          • 2012-10-14
          • 2011-12-06
          • 1970-01-01
          • 1970-01-01
          • 2013-03-09
          • 2011-09-29
          相关资源
          最近更新 更多