我可以編寫一個ant腳本,將更新的類文件複製到tomcat中的web-inf\classes
。但是我怎麼能告訴Tomcat 7.0自動從web-inf/classes
目錄中選取已更改的類文件?如何在tomcat中啓用熱部署
我嘗試在tomcat主機配置server.xml
中設置autoDeploy="true"
,但是當檢測到更改時,Tomcat會話被銷燬。 我可以很容易地在的IntelliJ
我可以編寫一個ant腳本,將更新的類文件複製到tomcat中的web-inf\classes
。但是我怎麼能告訴Tomcat 7.0自動從web-inf/classes
目錄中選取已更改的類文件?如何在tomcat中啓用熱部署
我嘗試在tomcat主機配置server.xml
中設置autoDeploy="true"
,但是當檢測到更改時,Tomcat會話被銷燬。 我可以很容易地在的IntelliJ
我結束了使用HotSwapAgent tool。這是JRebel的免費替代方案
的Tomcat只能熱插拔某些類型的文件,如JSP,和靜態文件如JavaScript,CSS等,如果你turn off cacheing但不能熱插拔的Java類,只有重新啓動Web應用程序。爲了實現熱插拔Java類,我在任何地方都看到了JRebel廣告,但沒有嘗試過他們的產品。
但是,您可以通過註釋掉一條指令來保存Tomcat會話,如Tomcat文檔站點中所述:http://tomcat.apache.org/tomcat-7.0-doc/config/manager.html#Disable_Session_Persistence。
最後,您可以編寫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>
在任何合併,我會避免使用Eclipse Tomcat插件有兩個原因。
顯然,另一種選擇是使用jetty(例如,在開發過程中),它可以更輕鬆地進行熱切換。
另請參見https://stackoverflow.com/a/6584259/32453 – rogerdpack