使用Maven和NetBeans在Tomcat上进行增量热部署

时间:2010-05-03 08:28:06

标签: java tomcat netbeans maven hotdeploy

我正在使用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代码的更改?

4 个答案:

答案 0 :(得分: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'的自定义目标 我用它。我不能使用大绿色播放按钮'Run',但jetty部署工作得很好,并且热部署了Java类中的任何更改。

答案 1 :(得分:1)

看看JRebel。它应该做你想要的。怕疼。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

您可能会在Windows上遇到文件锁定问题。有几个workarounds,例如antiJarLocking contet属性,但实际上这归结为您的webapp未正确关闭,最终会在几次重新加载后耗尽您的VM内存。在我的情况下,我使用的是Spring,“正确”修复是在一些关键bean上添加一个destroy-method,以便应用程序正常关闭。

Maven Tomcat Plugin - tomcat:inplace