Idea+spring-boot+devtools 實現項目的熱部署

場景:java

    在idea中作了小小改動,中止,再重啓應用比較耗時,因此須要,在作改動後自動加載修改的類或配置文件,實現自動部署,就能省不少時間。android

使用devtools實現熱部署的原理爲:spring

devtools實現熱部署使用了2個calssloader,
一個用於加載不會改變的類(如第三方jar的類);
另外一個會用來加載會變更的類的classloader被稱爲「RestartClassLoader」,
當有代碼或配置文件發生改變時,就會丟棄當前RestartClassLoader,從新建立一個RestartClassLoader加載更新的文件。
因爲須要加載的文件相對較少,因此實現了較快的重啓。app

添加maven依賴:maven

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-devtools</artifactId>
   <optional>true</optional>
   <scope>true</scope>
</dependency>

並在spring-boot-maven-plugin插件中配置fork爲trueide

<plugin>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-maven-plugin</artifactId>
   <configuration>
      <!--必須配置項,不配置就不能實現熱部署-->
      <fork>true</fork>
   </configuration>
</plugin>

添加spring-boot配置(非必須):spring-boot

#配置熱部署目錄
spring.devtools.restart.additional-paths=src/main/java
spring.devtools.restart.enabled=true
spring.devtools.restart.exclude=resources/**

Idea設置:gradle

Ctrl+Shift+a查找make project automatically並勾選
或中在default setting中選擇build,execution,deployment,而後選擇gradle-android  compiler,勾選就能夠,以下圖:ui

Ctrl+Shift+Alt+/或 Ctrl+Shift+a選擇Registry…,勾選compiler.automake.allow.when.app.runningidea

肯定便可,重啓idea便可生效

修改代碼後,Ctrl+s或Ctrl+F9便可熱部署

Ctrl + Shift+F9強制從新部署

相關文章
相關標籤/搜索