一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

熱部署還在用devtools嗎?JRebel不香嗎?

 woh5r1ofyffxnh 2023-03-03 發(fā)布于浙江

目錄

  • 前言
  • JRebel收費怎么破?
  • 什么是本地?zé)岵渴穑?/section>
  • 什么是遠程熱部署?
  • JRebel和devtools的區(qū)別
  • 如何安裝JRebel?
  • 如何本地?zé)岵渴穑?/section>
  • 如何遠程熱部署?
  • 多模塊開發(fā)的一個坑
  • 總結(jié)

前言

Spring Boot中的熱部署相信大家用的最多的就是devtools,沒辦法,官推的。

JRebel相對于devtools,個人覺得無論是加載速度還是使用便捷,JRebel完勝。

作為「前輩級別」的開發(fā)利器,JRebel真的值得開一章節(jié)來好好介紹下。

JRebel收費怎么破?

前面作者單獨寫過一篇激活JRebel的文章教程,沒錢的可以去看看:擼了個反向代理工具,搞一搞JRebel。

「特此聲明」:作者支持原版,不差錢的建議裝個原版的,畢竟這么好的工具值得。

什么是本地?zé)岵渴穑?/span>

傳統(tǒng)的開發(fā)中,項目在啟動過程中代碼有所改動是不會重新編譯運行的,而是要關(guān)閉項目重新啟動后修改的代碼才會生效。

「本地?zé)岵渴稹?/strong>則是能夠在項目運行中感知到特定文件代碼的修改而使項目不重新啟動就能生效。

什么是遠程熱部署?

遠程熱部署的遠程兩字指的是「遠程服務(wù)器」,平時開發(fā)中,只要本地代碼改動了,必須要重新打包上傳服務(wù)器重新啟動之后才會生效,「你這樣干過嗎?.......」

嗯?好像干過

「遠程熱部署」則是本地代碼改變之后,不用重新打包上傳服務(wù)器重啟項目就能生效,本地改變之后能夠自動改變服務(wù)器上的項目代碼。

有些人聽到這里懵逼了,這是什么鬼?還有這么神奇的東西...........

別驚訝,就是這么神奇

JRebel和devtools的區(qū)別

前輩和后輩的比較其實沒什么可比性,如果不是JRebel「收費」了,絕對是所有程序員的首選。但還是要說說他們之間的區(qū)別,如下:

  1. JRebel加載的速度優(yōu)于devtools
  2. JRebel不僅僅局限于Spring Boot項目,可以用在任何的Java項目中。
  3. devtools 方式的熱部署在功能上有限制,方法內(nèi)的修改可以實現(xiàn)熱部署,但新增的方法或者修改方法參數(shù)之后熱部署是不生效的。

如何安裝JRebel?

本地?zé)岵渴鹬恍枰?code style="padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(145, 109, 213);font-weight: bolder;background-image: none;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;">IDEA中裝一個JRebel的插件,遠程熱部署需要在服務(wù)器上裝一個JRebel,這兩種方式在上一篇文章都介紹過,不會的可以去看看:擼了個反向代理工具,搞一搞JRebel。

如何本地?zé)岵渴穑?/span>

JRebel插件安裝完成之后,將IDEA中的自動編譯開啟,然后找到IDEA中的JRebel的工具面板,將所需要熱部署的項目或者模塊勾選上即可,如下圖:

勾選成功之后將會在項目或者模塊的src/resource下生成一個rebel.xml文件。

此時在Spring Boot的主啟動類上右鍵,將會出現(xiàn)以JRebel啟動的選項,如下圖:

當(dāng)然在IDEA的右上角也存在啟動的按鈕,如下圖:

是本地啟動和DEBUG模式啟動,是遠程熱部署的時候更新按鈕。

此時就已經(jīng)配置成功了,如果勾選的項目或者模塊出現(xiàn)了改變,按CRTL+SHIFT+F9則會自動重新編譯加載改變的部分,不用再重新啟動項目了。

如何遠程熱部署?

遠程熱部署需要在服務(wù)器上安裝并激活JRebel,參照上篇文章:擼了個反向代理工具,搞一搞JRebel

激活成功后需要設(shè)置遠程連接的密碼,在JRebel的根目錄下執(zhí)行以下命令:

java -jar jrebel.jar -set-remote-password 123456789

此處設(shè)置的123456789則是遠程的密碼,在IDEA連接服務(wù)器的時候需要。

服務(wù)器配置成功后,在IDEA中JRebel的面板中設(shè)置遠程熱部署的模塊,如下圖:

勾選成功后,將會在src/resource下生成一個rebel-remote.xml文件。

此時將Spring Boot項目打包成一個Jar,上傳到服務(wù)器,執(zhí)行以下命令啟動項目:

nohup java -agentpath:/usr/local/jrebel/lib/libjrebel64.so  -Drebel.remoting_plugin=true -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9083 -jar xxx.jar &

libjrebel64.so這個文件是JRebellib目錄下的文件。

-Xdebug之后,-jar之前的命令是開啟遠程調(diào)試的,如果不需要的可以去掉,不知道遠程調(diào)試的,可以看:驚呆了!Spring Boot還能開啟遠程調(diào)試~。

項目啟動成功后,服務(wù)器上的配置就完成了。

此時在IDEA中需要設(shè)置連接到剛才啟動的項目,打開File->setting->JRbel&XRebel->JRbel Remote Servers,如下圖:

步驟如下:

  1. 點擊+號添加一個服務(wù)
  2. 填寫信息
  • server name隨便起個服務(wù)的名字
  • server URL格式:http://ip:port,這里的ip是服務(wù)器的IP,port是項目端口號。
  • 遠程密碼則是上文設(shè)置的JRebel的密碼123456789
  1. 點擊OK,即可添加成功。

以上設(shè)置成功后,點擊右上角的遠程部署按鈕,下圖中的號按鈕,則會自動更新服務(wù)器上已啟動項目的代碼使之本地修改在服務(wù)端自動生效:

JRebel Console這個面板中將會打印出遠程熱部署更新的日志信息,如下圖:

只要本地有了更改,點擊遠程熱部署按鈕,則會自動上傳代碼到服務(wù)器端并實時更新,不用重新啟動項目。

多模塊開發(fā)的一個坑

如果是多模塊開發(fā),比如分為api(最終的Jar包),core(核心包),service(業(yè)務(wù)層的包),最終打包運行在服務(wù)器端的是api這個模塊,其余兩個模塊都是屬于依賴模塊,雖然在JRebel遠程熱部署選項中都勾選了,但是它們的代碼更改并不會在服務(wù)端生效。

這個如何解決呢?很簡單,在api項目下的rebel-remote.xml文件中將其余兩個模塊添加進去,默認(rèn)的如下:

<?xml version="1.0" encoding="UTF-8"?>
<rebel-remote xmlns="http://www./rebel/remote">
    <id>xx.xx.xx.api</id>
</rebel-remote>

添加之后的代碼如下:

<?xml version="1.0" encoding="UTF-8"?>
<rebel-remote xmlns="http://www./rebel/remote">
    <id>xx.xxx.xx.api</id>
    <id>xx.xx.xx.service</id>
    <id>xx.xx.xx.core</id>
</rebel-remote>

以上的<id>標(biāo)簽中指定的是模塊的包名(package)。

總結(jié)

作為熱部署界的前輩,JRebel依然是敵得過后浪,果然是姜還是老的辣......

希望這篇文章介紹的JRebel能夠提高讀者們的開發(fā)效率,反正我是提高了,哈哈~

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    丰满人妻一二区二区三区av| 色婷婷国产精品视频一区二区保健| 日韩欧美中文字幕av| 午夜福利视频六七十路熟女| 人妻久久一区二区三区精品99| 中文字幕高清免费日韩视频| 久久福利视频这里有精品| 色婷婷中文字幕在线视频| 亚洲精品一区二区三区免| 精品少妇人妻av免费看| 亚洲欧美精品伊人久久| 色丁香之五月婷婷开心| 精品视频一区二区三区不卡| 91久久精品国产一区蜜臀| 欧美人与动牲交a精品| 2019年国产最新视频| 日本熟妇熟女久久综合| 成人国产激情福利久久| 国产精品成人免费精品自在线观看| 亚洲国产av在线视频| 亚洲最新av在线观看| 色好吊视频这里只有精| 欧美尤物在线观看西比尔| 麻豆看片麻豆免费视频| 欧美国产日韩变态另类在线看| 欧洲日本亚洲一区二区| 久热久热精品视频在线观看| 91精品国产综合久久不卡| 99日韩在线视频精品免费| 国产日韩欧美综合视频| 男人和女人干逼的视频| 国产精品国产亚洲看不卡| 老司机亚洲精品一区二区| 人妻精品一区二区三区视频免精 | 日韩一区二区三区在线欧洲| 亚洲av熟女国产一区二区三区站| 大香蕉精品视频一区二区| 五月婷婷综合缴情六月| 国产一区二区三中文字幕| 国产乱久久亚洲国产精品| 中国一区二区三区人妻|