我正在運行Intellij Ultimate和Tomcat並部署戰爭。一切都部署到tomcat的webapp目錄。IntelliJ和Tomcat ....更改的文件不會被Tomcat自動識別
當我像xhtml文件一樣更改文件時,有沒有辦法讓tomcat自動獲取該更改?截至目前,我需要從intellij複製文件,並將其複製到它所在tomcat webapp目錄中的目錄。我知道某些文件需要重新編譯,但是xhtml不是其中之一。
我正在運行Intellij Ultimate和Tomcat並部署戰爭。一切都部署到tomcat的webapp目錄。IntelliJ和Tomcat ....更改的文件不會被Tomcat自動識別
當我像xhtml文件一樣更改文件時,有沒有辦法讓tomcat自動獲取該更改?截至目前,我需要從intellij複製文件,並將其複製到它所在tomcat webapp目錄中的目錄。我知道某些文件需要重新編譯,但是xhtml不是其中之一。
如果您使用IntelliJ IDEA部署戰爭,則無法完成此操作。但是,如果你部署了爆炸戰,它可以可以。在IDEA:
my-webapp-name:war
my-webapp-name:war exploded
現在無論何時您進行更改,IDEA都會在IDEA框架停用時重新部署更改的文件(即,失去了重點)。這需要一兩秒鐘,您會在IDEA中較低的狀態欄中看到它。明顯。你仍然需要刷新你的網頁瀏覽器,以便獲取新文件(除非頁面有像提取那樣的自動刷新Ajax)。
與Tomcat的良好結合是將「On frame deactivation」設置爲「Update Resources」並將「On'update'操作設置爲」重新部署「或」重新啓動服務器「。幀失活,和階級通過「更新」行動更新。
名爲ZeroTurnaround一個公司銷售JRebel這是一個動態的類加載器的解決方案。他們也有five part series on the subject這是非常好的。
如果要更新類和資源。在「調試模式」下運行Tomcat。此模式下的InteliJ更新沒有問題類和資源。
得到同樣的問題。 InteliJ沒有更新我的項目,因爲我以「運行模式」運行。當我在調試模式下運行並按Ctrl + F10,它更新類和資源。
我找到了更好的方法。
在Eclipse我們已經自動編譯+重新加載靜態文件。實際上,靜態文件直接從src/main/webapp提供。
在的IntelliJ,而不是直接從SRC服務/主/ web應用,則在目標創建的文件夾,在其中你將有你的的src/main/webapp的以及其他方面相關的副本.. web-inf/classes/lib。
如果你把而不是目標的爆炸神器的輸出的src/main/webapp的,它不會覆蓋你的源文件,它將直接服務,您不會有打 - 更新資源/更新資源和類
所以,你需要的IntelliJ做的是
在此之後,如果您有來自的IntelliJ外部改變的靜態文件的作業,你會馬上看到變化,而不去的IntelliJ和更新資源,而對於類你有宏,節省,並編譯(注意:你也可以點擊Compile/Recompile:cmd + shift + F9/cmd + F9 - 如果你有多個打開的編輯器會看到你的髒編輯器不會變髒,並且變化重新加載)
看來,如果你有註冊表compiler.automake ..啓用它只推命中保存你的更改。 –
謝謝。這個伎倆。我是新的Stackoverflow,所以我不知道如何把它作爲一個回答的問題。 – Peter
我有錯誤:'錯誤:神器'我的webapp名稱:戰爭爆炸'具有無效的擴展名'如何解決? –
我也強烈建議使用DCEVM進行自動類重裝。然後,您可以使用「更新類和資源」將所有更改應用於源代碼,而無需重新部署應用程序。請參閱:http://blog.jetbrains.com/idea/2013/07/get-true-hot-swap-in-java-with-dcevm-and-intellij-idea/。除了本教程解釋的內容之外,還需要在Tomcat運行配置的Setup/Connection - Debug選項卡中將JAVA_HOME設置爲指向DCEVM的JRE。 –