返回 导航

其他

hangge.com

Intellij - 实现项目的热部署1(使用spring-boot-devtools实现自动编译重启)

作者:hangge | 2019-10-18 08:10
    在开发 Spring Boot 项目时,每次修改代码之后都需要手动重启项目,十分浪费时间。Spring 为开发者提供了一个名为 spring-boot-devtools 的模块来使 Spring Boot 应用支持热部署,当配置了 devtools 后,我们在 classpath 修改任何文件后项目都将会自动编译并重启。

1,添加依赖

(1)首先我们修改项目的 pom.xml 文件,在 dependencies 标签内添加一个新的 dependency 标签,用于加载 spring-boot-devtools 工具包。
这里的 optional 选项,是为了防止将 devtools 依赖传递到其它模块中。当开发者将应用打包运行后,devtools 会被自动禁用。
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>

(2)修改 pom.xml IDE 自带的 maven 会自动下载 jar 包,并在下方显示 jar 包下载进度,我们可以耐心等一会。

2,修改 application.properties 文件

application.properties 文件中添加如下内容,设置热部署的一些相关配置:
#"关闭缓存, 即时刷新"
spring.freemarker.cache=false
spring.thymeleaf.cache=false

#热部署生效
spring.devtools.restart.enabled=true
#是否支持livereload
spring.devtools.livereload.enabled=true
#设置重启的目录,添加那个目录的文件需要restart
spring.devtools.restart.additional-paths=src/main/*
#设置不需要重启的目录
spring.devtools.restart.exclude=static/**,public/**

3、IDE 设置

(1)由于我使用的是 Intellij IDEMac 版),默认情况下不会自动编译。首先打开 Rreferences 窗口,勾选上 Compiler 子页面下的 Build project automatically 选项,并保存退出。

(2)按下 Command + Shift + A 在弹出框中输入 Registry 并点击结果。
 
(3)然后勾选自动编译选项。

4,运行测试

经过前面配置以后,以后每次只要对代码进行编辑并保存,Intellij IDEA 将会自动触发编译过程,并且重启应用服务。
注意:因为 devtools 采用的虚拟机机制,每次自动重启是很快的。
评论

全部评论(0)

回到顶部