什么是熱部署:服務(wù)器正在運(yùn)行漾脂,無須重啟服務(wù)器,就可以加載更改的代碼歹啼。
一、4類本地調(diào)試熱部署與實(shí)現(xiàn)步驟
第1種:修改服務(wù)器配置座菠,使得IDEA窗口失去焦點(diǎn)時(shí)狸眼,更新類和資源
菜單Run -> EditConfiguration , 然后配置指定服務(wù)器下,右側(cè)server標(biāo)簽下on frame deactivation = Update classes and resource浴滴。
優(yōu)點(diǎn):簡(jiǎn)單
缺點(diǎn):基于JVM提供的熱加載僅支持方法塊內(nèi)代碼修改拓萌,只有debug模式下,并且是在idea失去焦點(diǎn)時(shí)才會(huì)出發(fā)熱加載升略,相對(duì)加載速度緩慢
第2種:使用springloaded jar包
a. 下載jar包微王,github:https://github.com/spring-projects/spring-loaded
b. 啟動(dòng)應(yīng)用時(shí)添加VM啟動(dòng)參數(shù):-javaagent:/home/lkqm/.m2/repository/org/springframework/springloaded/1.2.7.RELEASE/springloaded-1.2.7.RELEASE.jar -noverify
優(yōu)點(diǎn):對(duì)Spring系列框架支持好(不含Spring boot), 支持 成員級(jí)別的修改(增刪改方法、字段品嚣、注解)炕倘,支持對(duì)枚舉值集。
缺點(diǎn):與優(yōu)點(diǎn)相對(duì)
第3種:使用spring-boot-devtools提供的開發(fā)者工具
spring-boot項(xiàng)目中引入如下依賴
org.springframework.bootspring-boot-devtools
優(yōu)點(diǎn):簡(jiǎn)單翰撑,支持Spring-boot項(xiàng)目罩旋,支持成員級(jí)別的修改熱部署。
缺點(diǎn):只支持spring-boot項(xiàng)目。
第4種:使用Jrebel插件實(shí)現(xiàn)熱部署(該插件14天免費(fèi)試用)
在線安裝:菜單File -> Setting -> Plugin, 點(diǎn)擊右側(cè)底部 Browse repositories, 彈出框頂部輸入:JReble for Intellij涨醋, 選中安裝即可瓜饥。
優(yōu)點(diǎn):強(qiáng)大,對(duì)各類框架支持浴骂,并且提供IDE插件的方式乓土。
總結(jié):最后3種方法是基于類加載機(jī)制來實(shí)現(xiàn)熱加載的,因此你修改完成代碼后必須重新編譯當(dāng)前代碼溯警,才能觸發(fā)熱部署趣苏,Eclipse默認(rèn)就支持了自動(dòng)編譯,而在Intellij IDEA中默認(rèn)是關(guān)閉了自動(dòng)編譯的愧膀,可以按照如下2步設(shè)置開啟:
IDEA開啟項(xiàng)目自動(dòng)編譯拦键,進(jìn)入設(shè)置,Build,Execut, Deployment -> Compiler 勾選中左側(cè)的Build Project automatically
如第上述步驟自動(dòng)編譯無效請(qǐng)嘗試下面檩淋,
IDEA開啟項(xiàng)目運(yùn)行時(shí)自動(dòng)make, ctrl + shift + a搜索命令:registry -> 勾選compiler.automake.allow.when.app.running
本人用Jreble調(diào)試熱部署參考下面安裝流程:
下載插件可以用idea自帶插件安裝,如果idea下載失敗萄金,請(qǐng)嘗試去idea插件中心下載jetbrains插件下載中心
安裝步驟
服務(wù)器激活方案步驟 2018/9/9有效Jreble
內(nèi)網(wǎng)激活服務(wù)器搭建方案步驟 搬運(yùn)
本人本地自啟激活服務(wù)器搭建方案(Windows環(huán)境下)
- 需要文件下載 https://pan.baidu.com/s/1EVmNhTq_ZtNv_c6XKUD2pw 密碼:01ul
image.png - 下載完jar文件步驟:
1. bat文件放在C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp文件夾下自動(dòng)啟動(dòng)蟀悦,參考:https://jingyan.baidu.com/article/eae07827ad2bba1fec5485ae.html
2. 修改bat里面文件的路徑,修改JrebelBrainsLicenseServerforJava.jar你存放的位置氧敢,我的存放位置就是C:\Users\bsp-20180831\Desktop\jrebel本地監(jiān)聽\jrebelBinn\JrebelBrainsLicenseServerforJava.jar日戈,放在桌面了
3. 登錄http://localhost:9090/
4. 注:不要把JrebelBrainsLicenseServerforJava.jar放在C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp自啟文件目錄下,每次開啟java會(huì)報(bào)錯(cuò)孙乖,自己體會(huì) - -浙炼,
5. 缺點(diǎn):
1)就是開機(jī)會(huì)看到一閃cmd黑框
2)本地9090端口沖突的話自己在下面下載源碼自行修改
3)當(dāng)然你改成手動(dòng)也是可以的,直接java -jar JrebelBrainsLicenseServerforJava.jar
4)有更好的方法的希望可以交流一下
-
成功標(biāo)志
image.png - 源碼出處:JrebelLicenseServerforJava,有想法的可以自己clone到本地進(jìn)行研究
- 經(jīng)濟(jì)允許還是請(qǐng)購買正版唯袄,要是SpringBoot開發(fā)弯屈,自帶的熱部署功能也是可以的
二、遠(yuǎn)程熱部署步驟
此熱部署是遠(yuǎn)程部署項(xiàng)目恋拷,不用在關(guān)閉或者重啟遠(yuǎn)程tomcat资厉,與本地調(diào)試熱部署區(qū)分,當(dāng)然強(qiáng)大的Jreble支持遠(yuǎn)程熱部署
這里我介紹Maven遠(yuǎn)程熱部署方案:
Tomcat有個(gè)后臺(tái)管理功能蔬顾,可以實(shí)現(xiàn)工程熱部署宴偿。
配置方法:
第一步:需要修改tomcat的conf/tomcat-users.xml配置文件。添加用戶名诀豁、密碼窄刘、權(quán)限。
<role rolename="manager-gui" /> //manager-gui 權(quán)限
<role rolename="manager-script" />//manager-script 權(quán)限
<user username="tomcat" password="tomcat" roles="manager-gui, manager-script"/>// manager-gui manager-script 權(quán)限給這個(gè)創(chuàng)建的用戶
第二步:重新啟動(dòng)tomcat舷胜。
第三步:使用maven的tomcat插件實(shí)現(xiàn)熱部署:
<build>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8081</port>//遠(yuǎn)程這個(gè)無效
<path>/</path>//項(xiàng)目名稱
<url>http://192.168.25.135:8080/manager/text</url>//前面的ip和端口可以換
<username>tomcat</username>//用戶名
<password>tomcat</password>//密碼
</configuration>
</plugin>
</plugins>
</build>
第四步:使用maven命令進(jìn)行部署娩践。
tomcat7:deploy//遠(yuǎn)程tomcat沒有要部署的項(xiàng)目
tomcat7:redeploy//遠(yuǎn)程tomcat有要部署的項(xiàng)目
部署的路徑是“/”會(huì)把系統(tǒng)部署到webapps/ROOT目錄下。
部署工程跳過測(cè)試:
clean tomcat7:redeploy -DskipTests