1. 程式人生 > >On Update action/On frame deactivation

On Update action/On frame deactivation

場景 red 形式 進一步 微軟雅黑 class 資源 兩個 rda

已剪輯自: https://blog.csdn.net/w15321271041/article/details/80597962

---------------------------------------------------------------------------------------------------

首先,我說明一下,什麽是"update"

網上很多人說是ctrl+f9,也就是項目編譯,這是錯的。真正的update看下圖,idea2018.2版本

技術分享圖片

---------------------------------------------------------------------------------------------------

場景:一般服務器(比如tomcat,jboss等)啟動以後,我們還需要進一步修改java代碼,或者是jsp代碼。一般來說,改完重啟以後才會生效。但如果配置了服務器的熱部署,就可以改完代碼後立即生效,而不是重啟服務器再生效。這樣就會節省大量時間!

目前有兩個選項:

On Update action : 顧名思義,當代碼改變的時候,需要IDEA為你做什麽;

On Frame deactivation : 當失去焦點(比如你最小化了IDEA窗口),需要IDEA為你做什麽。

---------------------------------------------------------------------------------------------------


On Update action 裏面有四個選項(一般選Update classes and resources):

-Update resources :如果發現有更新,而且更新的是資源文件(*.jsp*.xml等,不包括java文件),就會立刻生效

-Update classes and resources 如果發現有更新,這個是同時包含java文件和資源文件的,就會立刻生效

這裏需要註意一下:在運行模式下,修改java文件時不會立刻生效的;而debug模式下,修改java文件時可以立刻生效的。當然,兩種運行模式下,修改resources

資源文件都是可以立刻生效的。

-Redploy 重新部署,只是把原來的war刪掉,不重啟服務器

-Restart 重啟服務器

On Frame deactivation

-Do nothing : 不做任何事 (一般推薦這個,因為失去焦點的幾率太大)

-Update resources : 失去焦點後,修改的resources文件都會立刻生效

-Update classes and resources 失去焦點後,修改的java resources文件都會立刻生效(與On update action中的Update classes and resources一樣,也是運行模式修改的java文件不會生效,debug模式修改的java文件會立刻生效)

---------------------------------------------------------------------------------------------------------------------------

另外,如果Artifact是war包形式的話,On Update action與On frame deactivation中的選項也是不一樣的:沒有Update resources和 Update classes and resources這種選項,取而代之的是Hot Swap Classes選項,本質的意思是一樣的。

總結:

這樣設置是最佳的選擇

技術分享圖片

因為On frame deactivation IDE失去焦點的情況下 自動觸發,而開發過程中 可能需要查詢資料 或 與人聊天 或幹其它事,IDE需要不停的失去焦點。每次失去焦點就自動觸發 update ,CPU一下子 費很多,電腦瞬間變慢,所以沒有必要這樣,設置為Do nothing 最好,官方也默認的是 Do nothing。

On Update action,設置為 update classes and resources -----

運行模式下(jsp 立即生效,java 需要update才可生效)

調試模式下(java、jsp 都立即生效)

On Update action/On frame deactivation