热部署

151 阅读1分钟

之前写过一篇介绍热部署的文章,讲述了热部署的好处:在运行过程中自动更新和热部署底层的思路代码。

这篇以 新学习的一个项目 为依托,来说明如何实现热部署

  1. 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. 接下来的用法分为(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/**

参考文档:springboot热部署之spring-boot-devtools - 简书 (jianshu.com)