如何在tomcat中启用热部署

如何在tomcat中启用热部署,tomcat,jakarta-ee,intellij-idea,tomcat7,Tomcat,Jakarta Ee,Intellij Idea,Tomcat7,我可以编写一个ant脚本,将更新的类文件复制到tomcat中的web inf\classes。但是我如何告诉Tomcat7.0自动从web inf/classes目录中提取更改的类文件呢 我尝试在tomcat主机配置server.xml中设置autoDeploy=“true”,但当检测到更改时,tomcat会话被破坏。 我可以很容易地在Intellij中找到一个替代品吗?Tomcat只能热交换某些类型的文件,如,和静态文件,如JavaScript、CSS等。如果您不能热交换Java类,则只能重新

我可以编写一个ant脚本,将更新的类文件复制到tomcat中的
web inf\classes
。但是我如何告诉Tomcat7.0自动从
web inf/classes
目录中提取更改的类文件呢

我尝试在tomcat主机配置
server.xml
中设置
autoDeploy=“true”
,但当检测到更改时,tomcat会话被破坏。
我可以很容易地在Intellij中找到一个替代品吗?Tomcat只能热交换某些类型的文件,如,和静态文件,如JavaScript、CSS等。如果您不能热交换Java类,则只能重新启动webapp。为了实现Java类的热交换,我到处都看到了JRebel广告,但还没有尝试过他们的产品

但是,您可以通过注释掉Tomcat文档站点中解释的指令来保留Tomcat会话:

最后,您可以编写ANT脚本来组装WAR,并在每次执行脚本时重新部署

build.xml示例:

...
<target name="tomcat-stop">
    <exec executable="${server.home}/bin/catalina.bat">
        <arg value="stop"/>
    </exec>
</target>

<target name="tomcat-start">
    <exec executable="${server.home}/bin/startup.bat">
        <arg value="start"/>
    </exec>
</target>
...
<target name="all" depends="tomcat-stop,clean,init,compile,junit-slow,make_war,deploy,tomcat-start"></target>
。。。
...
在任何整合中,我都会避免使用EclipseTomcat插件,原因有二

  • 在大多数版本的Eclipse中,已经包含Tomcat作为服务器适配器,并附带了一些选项
  • 防止IDE因插件而膨胀
    我最终使用了。这是JRebel的一个免费替代方案

    显然,另一个选择是使用(例如,在进行开发时)它能够更轻松地进行动态热交换。

    intellij有一个新的插件支持它:

    谢谢,我有一个类似的脚本。我想知道它是如何在eclipse中使用EclipseTomcat插件实现的。与JRebel相反,它支持在tomcat中进行热部署,而不需要会话销毁Eclipse,这使您可以免费在tomcat中进行热交换。我想知道它是如何做到的,因为我想在IntellijSee中做同样的事情,也想知道如何在智能tomcat插件中启用热部署?我在提到的url中找不到解决方案。