IDEA集成JRebel熱部署和遠程調試


 

在Java Web開發中,一般更新了Java文件后要手動重啟Tomcat服務器才能生效,浪費不少生命啊,自從有了JRebel這神器的出現,不論是更新類還是更新Spring配置文件都能做到立馬生效,大大提高開發效率。

JRebel的使用方式最常見還是通過插件方式使用,這里我介紹下在IntelliJ IDEA中怎樣集成JRebel,另外還順便介紹一下IDEA如何進行遠程調試。

安裝

IDEA里面安裝插件比較簡單,File –> setttings –> Plugins,找到 Browe Repositories 按鈕,查找需要的JRebel插件,點擊Install即可。

安裝完插件后重啟IDEA即可看到JRebel的圖標了,綠色的小火箭。

激活

通過myjrebel

下一步就是激活JRebel了,現在 JRebel 對個人非商業用途的用戶永久免費,只需要分享一下使用統計。訪問: https://my.jrebel.com/ 使用 Facebook 或者 Twitter 帳號登錄獲取永久激活碼。然后注冊完,在如下頁面就有注冊碼:

獲取到注冊碼后復制下來,然后點擊 Help –> JRebel –> Activation

輸入激活碼即可:

通過LicenseServer

在2018/07/05這天IDEA突然提示JRebel的激活碼不能用了,然后打開 https://zeroturnaround.com/software/jrebel/myjrebel-discontinued/ 一看,

Weve made a difficult decision. As of July 5, myJRebel is no longer available.
But dont worry! All myJRebel users active within the last 12 months are eligible to continue using all JRebels wonderful
features by moving to JRebel commercial license at a massively discounted price: $99 (over 80% off the regular price).

通過開源社區找到一個很好用的LicenseServer,通過這個可以,gitee地址:

https://gitee.com/gsls200808/JrebelLicenseServerforJava

Packing a runnable jar:

mvn package
java -jar JrebelBrainsLicenseServerforJava-1.0-SNAPSHOT-jar-with-dependencies.jar -p 8082

default port is 8081.

然后在IDEA里面的JRebel激活中輸入通過licensing service:

http://ip:8082/fdf12095-3e08-49a0-92ee-5b459d5431dd

email也隨便填一個,激活即可。

配置JRebel插件

安裝完成后,簡單的配置就可以使用Jrebel的強大功能,在IntelliJ左下角,選擇JRebel選項卡,將第一個勾上即可

如果是Web項目,並且你使用Tomcat Web容器來開發的話,還需要配置運行項目,點擊 Run -> Edit Configurations…,在Tomcat配置里面,設置 On 'Update'' action 和 On frame deactivation 

注意:如果web啟動的時候,出現內存溢出現象則需要配置一下VM options:

但如果你用Jetty容器,那就不用像上面這樣配置了。

接下來就直接點擊綠色小火箭,運行/調試都可以。

遠程調試

准備工作

  • 明確遠程服務器的IP地址,比如我是:123.207.66.156
  • 關掉服務器防火牆: systemctl stop firewalld.service

在Run/Configuration里面,新增一個Remote Server配置。

復制 Remote Server 自動生成的 JVM 參數,等下有用,如下圖,比如我的是:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

 

在Host里面修改成服務器IP地址,比如我的是123.207.66.156

遠程Tomcat配置

編輯文件 catalina.sh ,在最上面添加:

export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'

 

如果你的項目有特殊 JVM 參數,那你就把你的那部分參數和這部分參數合並在一起。

遠程Jetty

jetty 不像Tomcat那樣需要安裝,只要有jetty的jar包就可以啟動我們想要啟動的應用,啟動命令如下:

nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar ${jarfile} >/dev/null 2>&1 &

 

開始調試

  1. 啟動服務器 Tomcat/Jetty
  2. 啟動本地 Remote Server
  3. 如果可以看到如下圖效果,表示已經連接成功了,接下里就是跟往常一樣,在本地代碼上設置斷點,然后你訪問遠程的地址,觸發到該代碼自動就會在本地停住。

在Java Web開發中,一般更新了Java文件后要手動重啟Tomcat服務器才能生效,浪費不少生命啊, 自從有了JRebel這神器的出現,不論是更新類還是更新Spring配置文件都能做到立馬生效,大大提高開發效率。

JRebel的使用方式最常見還是通過插件方式使用,這里我介紹下在IntelliJ IDEA中怎樣集成JRebel, 另外還順便介紹一下IDEA如何進行遠程調試。

 

 

 

 

原文地址:http://ju.outofmemory.cn/entry/332316


免責聲明!

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



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