天天看點

【IDEA】安裝并使用JRebel實作本地熱附加元件目

文章目錄

      • 一.描述
        • 1.引子
        • 2.JRebel的熱加載原理
        • 3.熱加載和熱部署的差別
      • 二.IDEA安裝插件的兩種方式
        • 1.線上安裝
        • 2.下載下傳安裝包離線安裝
      • 三.安裝并激活JRebel步驟
      • 四.項目部署
        • 生成rebel.xml檔案
        • 1.tomcat項目
        • 2.springBoot項目
        • 3.項目的啟動與運作效果
      • 五.其他熱加載的方式

一.描述

1.引子

  1. IDEA上本身是不支援熱加載的的,一般更新了 Java 檔案後要手動重新開機 Tomcat 伺服器,才能生效,浪費不少時間。目前對于idea熱加載最好的解決方案就是

    安裝JRebel插件

    ,這樣不論是更新 class 類還是更新 Spring 配置檔案都能做到立馬生效,大大提高開發效率。
  2. JRebel插件是需要收費使用的,雖然插件提供了14天的試用(擷取14天試用資格請點選這裡

    https://zeroturnaround.com/software/JRebel/trial/

    并且試用資訊的填寫也是随便填上虛假資訊即可,但是隻有一次試用機會,就是說試用期過了就不能再通過試用的方法繼續使用插件了,是以對于JRebel插件的破解還是很有必要的。
  3. JRebel是一款JAVA虛拟機插件,它使得JAVA程式員能在不進行重部署的情況下,即時看到代碼的改變對一個應用程式帶來的影響

本人的IDEA版本為

IntelliJ IDEA 2018.3 x64

,但是版本不同安裝jrebel的插件的原理是一樣的

2.JRebel的熱加載原理

jrebel是一個基于JVM類加載機制的插件,能自動重新加載修改後的java位元組碼檔案

。因為我們在

IDEA中開啟了自動編譯功能

,是以當java檔案發生改動時,會被自動編譯成位元組碼檔案,此時jrebel監聽到位元組碼檔案發生了改變,就自動的把改動的位元組碼檔案加載進JVM中,是以我們幾乎可以實時的看到修改後的效果。因為隻是重新加載改動的檔案,不用重新開機整個項目,是以效率上要遠高于

devtools

,對于

配置檔案

xml檔案

中的修改還是要

重新開機才行

3.熱加載和熱部署的差別

  • 熱加載:在項目運作狀态下,重新加載修改後的資源(用于日常開發),

    記憶體不會被清空,session也有效,但記憶體消耗較大。

  • 熱部署:在項目運作狀态下,

    自動重新開機部署整個項目(用于項目部署),但會将記憶體清空,session也将失效。

二.IDEA安裝插件的兩種方式

1.線上安裝

進入

setting->Plugins->Marketplace

【IDEA】安裝并使用JRebel實作本地熱附加元件目

搜尋需要安裝的插件

【IDEA】安裝并使用JRebel實作本地熱附加元件目

2.下載下傳安裝包離線安裝

有的插件下載下傳需要VPN,導緻下載下傳很慢,我們可以通過官網下載下傳安裝包,通過本地安裝包進行安裝

IDEA官網位址

https://plugins.jetbrains.com/

【IDEA】安裝并使用JRebel實作本地熱附加元件目
【IDEA】安裝并使用JRebel實作本地熱附加元件目

不管是線上安裝還是離線安裝後都會在

installed

顯示出安裝的插件

【IDEA】安裝并使用JRebel實作本地熱附加元件目

三.安裝并激活JRebel步驟

安裝前的檢查工作

  1. 檢查是否打開idea的自動編譯功能:settings->build->compiler->Build project automatically
    【IDEA】安裝并使用JRebel實作本地熱附加元件目
  2. 檢查是否打開idea的【當應用運作期間可以自動編譯的功能】
    • 方式一:ctrl+shift+alt+/ 選擇Registry
    • 方式二:ctrl+shift+A 搜尋registry,或help-》find action,搜尋Registry
      【IDEA】安裝并使用JRebel實作本地熱附加元件目
  3. 在IDEA中離線安裝Jrebel
    • 進入IDEA官網下載下傳jrebel離線包

      https://plugins.jetbrains.com/

    • 在IDEA中一次點選

      File->Settings->Plugins->Install Plugin form Disk

      找到要jrebel的壓縮包, 如果

      nstalled

      裡面有

      JRebel表示安裝成功.

      【IDEA】安裝并使用JRebel實作本地熱附加元件目
    • 安裝好之後重新開機IDEA
      【IDEA】安裝并使用JRebel實作本地熱附加元件目
    • 安裝成功
      【IDEA】安裝并使用JRebel實作本地熱附加元件目
  4. 破解JRebel
    • JRebel并非免費的插件,需要激活之後才能使用。

      首先到github上去下載下傳一個

      反向代理軟體

      ,我下載下傳的是windows x64版本。

      位址: https://github.com/ilanyu/ReverseProxy/releases/tag/v1.0

      下載下傳版本:ReverseProxy_windows_amd64.exe

      【IDEA】安裝并使用JRebel實作本地熱附加元件目
      下載下傳内容如下:
      【IDEA】安裝并使用JRebel實作本地熱附加元件目
    1. 打開此軟體後會将本地的80端口,代理到 IDEA 的

      http://idea.lanyus.com:80

      上 (一定要打開,否則無法激活!!!)
      【IDEA】安裝并使用JRebel實作本地熱附加元件目
    3.在IDEA中一次點選

    File->Settings->JRebel

    并找到激活界面,點選

    change liense

    進入的激活界面
    【IDEA】安裝并使用JRebel實作本地熱附加元件目
    4. 選擇

    JRebel activated

    中的

    connect to online licensing service

    • 第一行輸入

      http://127.0.0.1:8888/d3545f42-7b88-4a77-a2da-5242c46d4bc2

    • 第二行輸入正确的郵箱格式,例如:

      [email protected]

      提示:

      d3545f42-7b88-4a77-a2da-5242c46d4bc2

      為UUID,可以自己生成,并且必須是UUID才能通過驗證

      UUID生成網站: https://www.guidgen.com/ , 用于拼接到 http://127.0.0.1:8888/ 後面

    • 再點選以下

      change liense

      按鈕驗證激活
    • 激活成功
      【IDEA】安裝并使用JRebel實作本地熱附加元件目
    1. JRebel設定為offline(離線)模式 點一下

      work offline

      【IDEA】安裝并使用JRebel實作本地熱附加元件目
      1. 設定離線模式成功,如果離線模式到期。可以打開破解軟體,再點選

        renew offline seat

        即可重新整理離線時間
        【IDEA】安裝并使用JRebel實作本地熱附加元件目

四.項目部署

生成rebel.xml檔案

  • 項目初次使用,需要先生成rebel.xml檔案
  • 對要進行熱加載的項目,後面打上勾,就會發現項目中多了個

    rebel.xml

    檔案,這是JRebel的配置檔案,裡面會自動配置JRebel要監控的檔案目錄。
    • 如果是

      jar

      檔案,如

      springBoot項目

      , rebel.xml 則出現在

      項目根檔案夾

      中。
    • 如果是

      war

      檔案,如

      SSM項目

      ,rebel.xml将出現在

      WEB-INF / classes檔案夾

      中。

1.tomcat項目

【IDEA】安裝并使用JRebel實作本地熱附加元件目
【IDEA】安裝并使用JRebel實作本地熱附加元件目

2.springBoot項目

  • 項目初次使用,需要先生成rebel.xml檔案
    【IDEA】安裝并使用JRebel實作本地熱附加元件目

3.項目的啟動與運作效果

  1. 普通web項目與Spring boot的啟動方式一緻
    【IDEA】安裝并使用JRebel實作本地熱附加元件目
    【IDEA】安裝并使用JRebel實作本地熱附加元件目
  2. 運作效果
    • 啟動時會輸出離線資訊
      【IDEA】安裝并使用JRebel實作本地熱附加元件目
    • 修改檔案時會輸出reloading資訊
    • 控制台當出現

      JRebel: Reloading class xxx

      字樣的時候,說明JRebel熱加載完成,就可以檢視修改後的效果了。
    • 如果嫌JRebel的自動熱加載慢,可以

      ctrl+F9(Build Project)

      一下,觸發熱加載,就能立馬熱加載成功。趕緊動手試試吧!
【IDEA】安裝并使用JRebel實作本地熱附加元件目

五.其他熱加載的方式

  1. springBoot環境下,可用

    devTools

    ,但不如JRebel好。
  2. 以debug模式啟動項目,每次修改完重新

    ctrl+F9

    編譯一下,有時候也有效。