idea配置tomcat中war和war exploded的區別


 

是選擇war還是war exploded 這里首先看一下他們兩個的區別:

 

war模式:將WEB工程以包的形式上傳到服務器 ;
war exploded模式:將WEB工程以當前文件夾的位置關系上傳到服務器;
(1)war模式這種可以稱之為是發布模式,看名字也知道,這是先打成war包,再發布;

 

(2)war exploded模式是直接把文件夾、jsp頁面 、classes等等移到Tomcat 部署文件夾里面,進行加載部署。因此這種方式支持熱部署,一般在開發的時候也是用這種方式。

 

(3)在平時開發的時候,使用熱部署的話,應該對Tomcat進行相應的設置,這樣的話修改的jsp界面什么的東西才可以及時的顯示出來。

 

 

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

目前有兩個選項:

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

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

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

下面以tomcat為例,並且使用war exploded方式部署

 

 

具體配置如下:

1.打開tomcat的相關配置,右上角Edit Configurations ,找到tomcat的配置項

 

 

2.在配置項中找到On Update action與On Frame deactivation選項

 

 

 

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包形式(即不是war.exploded)的話,On Update action與On frame deactivation中的選項也是不一樣的:沒有Update resources和 Update classes and resources這種選項,取而代之的是Hot Swap Classes選項,本質的意思是一樣的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM