Spring Boot 2.7.18 + IDEA 热部署(通过触发文件控制重启)

Spring Boot 2.7.18 + IDEA 热部署(通过触发文件控制重启)

1. 添加 Maven 依赖

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

2. 配置触发文件

application.yml 中添加:

spring:
  devtools:
    restart:
      # 1. 启用自动重启 (默认就是 true,但显式声明更稳妥)
      enabled: false
#      poll-interval: 3s
#      quiet-period: 2s
      trigger-file: .reloadtrigger
      additional-paths: .

3. 创建触发文件

在项目根目录(与 pom.xml 同级)创建空文件 .trigger

  • macOS/Linuxtouch .trigger
  • Windowstype nul > .trigger

4. IDEA 自动编译设置

  • File → Settings → Build, Execution, Deployment → Compiler → 勾选 Build project automatically
  • Ctrl+Shift+A(Mac Cmd+Shift+A)搜索 Registry → 勾选 compiler.automake.allow.when.app.running

5. 运行配置

  • 必须使用 Debug 模式启动 Spring Boot 应用(Run 模式无效)
  • 确保启动类是 @SpringBootApplication 标注的普通 main 方法

6. 验证生效

  1. 启动应用(Debug),控制台输出 LiveReload server is running on port 35729
  2. 修改任意 Java 代码并保存 → IDEA 自动编译,应用不会重启
  3. 修改 .trigger 文件(例如用文本编辑器打开后保存,或执行 echo "" >> .trigger
  4. 控制台出现 Restarting... → 修改的代码生效

7. 常见问题

  • 修改触发文件无反应:检查 .trigger 路径是否与配置一致,且不在 /target 目录下
  • 普通代码修改也重启:删除 spring.devtools.restart.trigger-file 配置或注释掉
  • Debug 模式下仍无效:检查 IDEA Registry 中 compiler.automake.allow.when.app.running 是否真的勾选
posted @ 2026-06-10 16:34  连夜说服高管  阅读(30)  评论(0)    收藏  举报