自动编译插件--springboot实现热部署
第一种:通过配置文件,和idea配置来设置项目热部署。(建议使用第二种)
1.添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
2.配置自动编译。
①在files->settings->Build, Execution,Deployment-> Compiler页面下,勾选Build project automatically。

②选择Registry,勾选 compiler.automake.allow.when.app.running


注:(idea不同版本有所差异,我的版本是2020.2.1)
其他版本,若找不到上图的选项,可以去看看 :
files->settings->Advanced Settings中勾选Allow auto-make…
3.配置文件中开启热部署
①在application.properties 里添加配置
#热部署生效
spring.devtools.restart.enabled: true
#设置重启的目录
spring.devtools.restart.additional-paths: src/main/java
②在application .yml 中
#设置开启热部署
spring: devtools: restart: enabled: true
#重启目录
additional-paths: src/main/java
4.修改项目启动的配置
①如图所示Edit Configurations

②如下图所示

重启idea生效!!!上述方法热部署,再启动项目后,在原来的方法上增加或删除代码则不需要重启可以自动编译。
但是新的方法,并不好使,会报一个错误,关于HotSwap的问题。
原因:
百度上说,现有HotSwap的功能比较有限,很多修改都不支持。例如说只能增加方法或字段但不可以减少方法或字段,只能增加可见性不能减少,只能维持已有方法的签名而不能修改,等等;
二、使用JRebel插件来实现热部署。
1.只需要导入一个依赖即可
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
2.安装插件

3.激活
①选择help->JRebel->Activation

②选择TeamUrl只需要填写url和邮箱。
TeamUrl:http://jrebel.qekang.com:80/6ab13a24-2bfe-4303-8647-27c6bd7a064c
邮箱:随便写个邮箱即可(前提是邮箱)

④然后idea右上角

点击JRebel启动,或者debug
⑤测试新增两个接口,没有重启项目,调用成功


⑥配置自动编译时间:file–>settings–>JRebel & XRebel
如果写代码的时候可以把时间拉长一点,测接口的时候可以把时间拉短一点,看个人习惯设置。快捷键ctrl+f9 编译文件
