SpringBoot專案熱部署
個人使用了的感覺,太慢了,這邊改好了後要等好一會專案才能自動編譯,不知道是不是我專案龐大的原因。
我是使用的spring-boot-devtools進行熱部署,它只支援spring-boot專案。新增依賴
<!--熱部署-->
<!-- devtools可以實現頁面熱部署(即頁面修改後會立即生效,
這個可以直接在application.properties檔案中配置spring.thymeleaf.cache=false來實現) -->
<!--實現類檔案熱部署(類檔案修改後不會立即生效),實現對屬性檔案的熱部署。-->
<!--即devtools 會監聽classpath下的檔案變動,並且會立即重啟應用(發生在儲存時機),
注意:因為其採用的虛擬機器機制,該項重啟是很快的-->
<!-- (1) base classloader (Base類載入器) :載入不改變的Class,例如:第三方提供的jar包。-->
<!-- (2) restart classloader (Restart類 載入器) :載入正在開發的Class。-->
<!--為什麼重啟很快,因為重啟的時候只是載入了在開發的Class,沒有重新載入第三方的jar包。-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- optional-true, 依賴不會傳遞,該專案依賴devtools;
之後依賴boot專案的專案如果想要使用devtools,需要重新引入-->
<optional>true</optional>
</dependency>
配置檔案新增
#熱部署生效
spring.devtools.restart.enabled=true
#設定重啟的目錄,新增那個目錄的檔案需要restart
spring.devtools.restart.additional-paths=src/main/java
啟動後沒有反應,原因是它是基於類載入機制來實現熱載入的,因此你修改完成程式碼後必須重新編譯當前程式碼,才能觸發熱部署,Eclipse預設就支援了自動編譯,而在Intellij IDEA中預設是關閉了自動編譯的,所以先必須先把它開啟:
1、IDEA開啟專案自動編譯,進入設定,Build,Execut, Deployment -> Compiler 勾選中左側的Build Project automatically
2、IDEA開啟專案執行時自動make, ctrl + shift + a搜尋命令:registry -> 勾選compiler.automake.allow.when.app.running 注:可能會ctrl + shift + a 變成了截圖功能,我就是釘釘的截圖熱鍵導致的,關掉它!
附:下面方法我沒有檢驗 IDEA配置熱部署
Swift Code
1、修改伺服器配置,使得IDEA視窗失去焦點時,更新類和資源
選單Run->EditConfiguration , 然後配置指定伺服器下,右側server標籤下on frame deactivation = Update classes and resource。
優點:簡單
缺點:基於JVM提供的熱載入僅支援方法塊內程式碼修改,只有debug模式下,並且是在idea失去焦點時才會出發熱載入,相對載入速度緩慢
2、使用springloaded jar包
a. 下載jar包,github:
b. 啟動應用時新增VM啟動引數:-javaagent:/home/lkqm/.m2/repository/org/springframework/springloaded/1.2.7.RELEASE/springloaded-1.2.7.RELEASE.jar - noverify
優點:對Spring系列框架支援好(不含Spring boot), 支援 成員級別的修改(增刪改方法、欄位、註解),支援對列舉值集。
缺點:與優點相對
3、使用Jrebel外掛實現熱部署(該外掛14天免費試用)
線上安裝:選單File -> Setting -> Plugin, 點選右側底部 Browse repositories, 彈出框頂部輸入:JReble for Intellij, 選中安裝即可。
優點:強大,對各類框架支援,並且提供IDE外掛的方式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2672876/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SpringBoot專案在IntelliJ IDEA中實現熱部署Spring BootIntelliJIdea熱部署
- Docker部署SpringBoot專案DockerSpring Boot
- springboot熱部署Spring Boot熱部署
- SpringBoot 監控、專案部署Spring Boot
- Springboot2專案配置(熱部署+war+外部tomcat+外部配置檔案)Spring Boot熱部署Tomcat
- SpringBoot熱部署加持Spring Boot熱部署
- 初學docker部署springboot專案DockerSpring Boot
- Docker(四)Docker部署SpringBoot專案DockerSpring Boot
- SpringBoot使用Docker快速部署專案Spring BootDocker
- Docker-Docker部署SpringBoot專案DockerSpring Boot
- Jenkins部署碼雲SpringBoot專案JenkinsSpring Boot
- springboot 專案部署到外部tomcatSpring BootTomcat
- springboot專案部署到tomcat容器Spring BootTomcat
- 開發利器JRebel部署SpringBoot專案Spring Boot
- SpringBoot 實現熱部署Spring Boot熱部署
- springboot實現熱部署Spring Boot熱部署
- idea SpringBoot jar 熱部署IdeaSpring BootJAR熱部署
- 【SpringBoot】三十二、SpringBoot專案Jar包如何瘦身部署Spring BootJAR
- SpringBoot專案如何打包部署到tomcat中去Spring BootTomcat
- Springboot專案引入druid安裝部署使用Spring BootUI
- Springboot專案依賴jar分離部署Spring BootJAR
- Jenkins自動化部署SpringBoot多模組專案JenkinsSpring Boot
- 雲伺服器啟動部署springboot的專案伺服器Spring Boot
- IDEA一鍵部署SpringBoot專案到伺服器IdeaSpring Boot伺服器
- maven+jetty+idea+jrebel 實現專案熱部署MavenJettyIdea熱部署
- SpringBoot實現熱部署兩種方式!Spring Boot熱部署
- IDEA SpringBoot專案配置熱更新的步驟詳解IdeaSpring Boot
- linux伺服器部署SpringBoot專案並檢視專案執行日誌Linux伺服器Spring Boot
- springBoot專案部署整合阿里雲https證書報錯Spring Boot阿里HTTP
- Serverless與微服務探索(二)- SpringBoot專案部署實踐Server微服務Spring Boot
- SpringBoot專案部署到阿里雲伺服器全流程Spring Boot阿里伺服器
- Centos8.3、docker部署springboot專案實戰記錄CentOSDockerSpring Boot
- Linux下部署springboot專案的步驟及過程LinuxSpring Boot
- SpringBoot手動部署到Tomcat和自動化熱部署Spring BootTomcat熱部署
- SpringBoot整合devtools實現熱部署除錯Spring Bootdev熱部署除錯
- SpringBoot專案在linux系統中的部署(直接部署、外接tomcat中部署)以及配置httpsSpring BootLinuxTomcatHTTP
- K8S 部署 SpringBoot 專案(一篇夠用)K8SSpring Boot
- SpringBoot + Angular前後端分離專案部署(更新)實錄Spring BootAngular後端