之前写过一篇介绍热部署的文章,讲述了热部署的好处:在运行过程中自动更新和热部署底层的思路代码。
这篇以 新学习的一个项目 为依托,来说明如何实现热部署
- pom.xml文件添加对应maven依赖
<!-- 热部署模块 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!--build放在</dependencies>标签的后面,主要加入的是resources标签 -->
<!--resources标签可以告诉系统启动的时候能够读取到这些后缀的文件 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
- 接下来的用法分为(1)和(2)两种,择1即可 (1)在默认devtools的exclude
META-INF/maven/**,META-INF/resources/**,resources/**,static/**,public/**,templates/**
,**/*Test.class,**/*Tests.class,git.properties,META-INF/build-info.properties
并在yml文件中配置
spring:
devtools:
restart:
# 开启热部署(更改文件后,自动重启)
enabled: true
## 设置哪些资源变动后不触发热部署,会覆盖默认的exclude内容(资源不会触发重启,但会触发实时重新加载)
# exclude: WEB-INF/**,static/**
## 监控额外的路径(优先于exclude)
# additional-paths: src/main/java
(2)但基于此系统而言,application.properties中
#热部署生效
spring.devtools.restart.enabled=false
#设置重启的目录
spring.devtools.restart.additional-paths=src/main/java
#classpath目录下的WEB-INF文件夹内容修改不重启
spring.devtools.restart.exclude=WEB-INF/**