idea兩種方式熱部署


我這里整理的 IDEA 熱部署方式有兩種,一是 IDEA 自帶的,另一種是通過 JRebel 插件。其他方式如:使用 springloaded jar 包、 spring-boot-devtools 本文不做介紹

一、IDEA 自帶的

修改服務配置,使得 IDEA 窗口失去焦點時,更新類和資源,具體步驟:

菜單Run -> EditConfiguration , 然后配置指定服務器下,server標簽下on frame deactivation = Update classes and resource。 如下圖tomcat server

IDEA兩種熱部署方式-打不死的小強

缺點:這種方式是基於 JVM 提供的熱加載,僅支持方法塊內代碼修改,只有 debug 模式下,並且是在 idea 失去焦點時(也即電腦切換到其他界面)才會觸發熱加載,相對加載速度緩慢 。

二、使用 JRebel 插件

1、安裝 JRebel 插件

在 IDEA 中一次點擊 File->Settings->Plugins->Brows Repositories ;在搜索框中輸入 JRebel 進行搜索 ,找到 JRebel for intellij ;install;安裝好之后需要重啟 IDEA 。如下圖所示

IDEA兩種熱部署方式-打不死的小強

如果安裝失敗,提示 …was not installed: Cannot download …,則進行下面設置:
找到 settings-> Appearance&Behavior -> System settings->updates 下面的 Use secure Connetion 去掉√

IDEA兩種熱部署方式-打不死的小強


2、激活 JRebel

JRebel 並非免費的插件,需要激活之后才能使用。
(1)首先到 github 上去下載一個破解軟件,根據自己電腦下載指定版本,這里下載 windows x64 版本。 下載地址

IDEA兩種熱部署方式-打不死的小強

(2)雙擊運行下載好的軟件,如下圖,運行成功

IDEA兩種熱部署方式-打不死的小強

(3)在 IDEA 中一次點擊 File->Settings->JRebel 並找到激活界面( 因為我的已經激活了,點擊 change liense 進入激活界面) 

(4)選擇 JRebel activated 中的 Team URL
第一行輸入 http://127.0.0.1:8888/d3545f42-7b88-4a77-a2da-5242c46d4bc2
第二行輸入正確的郵箱格式(隨意填寫),例如: test@123.com
勾選 I agree with… ,點擊按鈕驗證激活
提示:d3545f42-7b88-4a77-a2da-5242c46d4bc2為 UUID,可以自己生成,但是必須是 UUID

IDEA兩種熱部署方式-打不死的小強

(4)最后把 JRebel 設置為 offline 模式 點一下work offline

IDEA兩種熱部署方式-打不死的小強

說明:激活成功后就可以把激活軟件關閉了。

3、配置 IDEA

JRbel 是基於類加載機制來實現熱加載的,因此你修改完成代碼后必須重新編譯當前代碼,才能觸發熱部署,Eclipse 默認就支持了自動編譯,而在 Intellij IDEA 中默認是關閉了自動編譯的,可以按照如下 2 步設置開啟:

(1)IDEA 開啟項目自動編譯,File->Settings->Build,Execut, Deployment -> Compiler 勾選中左側的Build Project automatically

IDEA兩種熱部署方式-打不死的小強

 

(2)IDEA 開啟項目運行時自動 make, ctrl + shift + a搜索命令:registry -> 勾選compiler.automake.allow.when.app.running

IDEA兩種熱部署方式-打不死的小強IDEA兩種熱部署方式-打不死的小強

4、配置 JRebel

選擇要啟用 JRebel 熱部署的 module,打開 View – Tool Windows – JRebel

IDEA兩種熱部署方式-打不死的小強

彈出 JRebel Panel,根據需要選擇 module

IDEA兩種熱部署方式-打不死的小強

5、JRebel 熱部署說明

(1)啟動項目要采用 Run with JRebel、Debug with JRebel。

IDEA兩種熱部署方式-打不死的小強

(2)JRebel 熱部署觸發

1)JRebel 默認修改完代碼,到了檢測時間自動重新編譯完成熱部署。檢測時間可以通過下面設置

IDEA兩種熱部署方式-打不死的小強

2)如果不想自動完成,可以通過取消 Enable IntelliJ automatic compilation 勾選√,如下圖

IDEA兩種熱部署方式-打不死的小強

這樣在修改代碼后,需要通過 Ctrl + F9 (或菜單 Built->Build Project),才會觸發。

三、JRebel 使用中遇到的問題

1、不能熱加載

問題:在使用中發現,代碼明明更改了,包括增加了新的代碼文件。但是無論手動觸發、自動觸發還是重啟 tomcat。項目都不更新熱加載。

分析:后來在一次啟動 tomcat 的時候突然發現,啟動日志中顯示的 JRebel 熱加載監控路徑不是當前項目的路徑;

IDEA兩種熱部署方式-打不死的小強

接着想到,我這個項目是通過原來項目復制出來的,而該路徑是原來項目的本地路徑。於是明白之所有熱部署不生效是因為 JRebel 監控是原來項目而不是當前項目。

解決:搞清楚了原因,接下來,只需將 JRebel 所監控項目改為當前項目即可。

File -> Project Structure… -> Modules -> JRebel -> Regenerate xml confguration 即可,如下圖:

IDEA兩種熱部署方式-打不死的小強

JRebel 方式重啟 tomcat 即可。


免責聲明!

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



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