update resources,update classes and resources ,redeploy理解(轉載)

 

本編博客轉載自:http://www.mamicode.com/info-detail-1699044.html

 

總結這3種方式的區別:

一、war和exploed區別

On Upate Action 與 On Frame Deactivation  這兩個選項的設置,依賴於 項目的部署方式 是war包 還是 exploded ,看下面的gif:

技術分享

 

這裏實在是太靈活了,如果要講 太費時間了,我們只講exploded模式下的設置,因爲這個我們用的最多,開發模式,開發完成後 直接用maven的 package命令打包就行了,所以用的最多的 也是最靈活的就是exploded 開發模式。exploded模式 實際運行的就是target目錄下的kao文件夾。

 二、on update action

首先來看 on update action 相關的解釋,從字面上理解 就是 手工觸發 update 動作的時候 做什麼:

技術分享

 

技術分享

 

update resources ---- 更新靜態的資源,比如html,js,css等 運行模式和調試模式都是立即生效。

update classes and resources ---- 更新java,jsp和靜態資源(

1. java 修改後,會被編譯成.class 然後覆蓋到target/kao文件夾下,IDE調試模式的情況下,立即生效。IDE運行模式下,不立即生效,需要redeployed纔可生效。

2. jsp修改後,再次被訪問的時候,會自動更新,重新編譯成.java---->.class 保存在tomcat的work目錄下。由於是訪問時才檢測是否修改,是否需要重新編譯,所以 IDE 運行模式 和 IDE調試模式下,都是立即生效。刷新下頁面就可);

redeployed ----- 重新部署,發佈到tomcat裏,不重啓tomcat,而是把原來的刪掉,然後重新發布;

restart server ----- 重啓tomcat

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

三、on frame deactivation 

再來看on frame deactivation ,意思是 IDE 失活時 做什麼,就是說 IDE 失去焦點時 做什麼。

 

技術分享

 

Do nothing --------- 什麼都不做

update resources ---- 更新靜態的資源,比如html,js,css等 運行模式和調試模式都是立即生效。

update classes and resources ---- 更新java,jsp和靜態資源 同上。

 

驗證上方的結論看如下GIF:

 靜態資源不用測試了,測試 On Update Action 的 (update classes and resources)在debug模式 與 運行模式下的差別。

1.運行模式下,jsp是 update classes and resources 是立即生效的,但是.java文件修改後 並不會立即生效。

技術分享

 

 2.debug調試模式下,jsp和java文件修改 都會立即生效:

技術分享

 

3.測試on frame deactivation 即IDE 失去焦點時自動做一些事, 我們測試 讓其update classes and resources ,以調試模式爲例,運行模式除了java 修改不會自動生效,其它一致;

技術分享

 四、總結:

總結,這樣設置是最佳的選擇:

技術分享

 

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

On Update action ------- update classes and resources ----- 運行模式下(jsp 立即生效,java 需要redeploy纔可生效)

On Update action ------- update classes and resources ----- 調試模式下(java、jsp 都立即生效)

 

 =================完結了!!!!!!!!這塊非常靈活,這篇博客研究了一天 才寫出來,很多時候 不知道 如何組織 如何寫,才能更加 簡單明瞭。

 

五、關於一些小知識說明:

C:\Users\del-berlin\.IntelliJIdea2017.1\system\tomcat\Unnamed_kao_4\work\Catalina\localhost\kao\org\apache\jsp ,jsp再第一次被訪問時,會被編譯成java 然後再被編譯成class ,然後放到 tomcat的work目錄下,但是IntelliJ 裏,由於部署方式的原因 實際上是保存到了 上面的目錄裏,而實際的項目運行中是保存到了tomcat的work目錄裏:

技術分享

 

技術分享

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章