You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发阶段Gradle构建含DevTools的Spring Boot JAR遇到404错误如何解决

解决方案

你遇到的404错误核心是两种原因:要么DevTools没有被正确打入运行的Jar包,要么容器内的Spring应用没有启用DevTools远程服务端点,按以下步骤调整即可:

1. 调整Gradle打包配置

Spring Boot Gradle插件默认会在打包时排除DevTools,你需要在build.gradle(Groovy语法)中添加以下配置:

// 确保bootJar打包时保留DevTools
bootJar {
    excludeDevTools = false
}

// 同步配置bootBuildImage,构建镜像时保留DevTools
bootBuildImage {
    excludeDevTools = false
}

如果你使用Kotlin DSL(build.gradle.kts),对应配置如下:

tasks.bootJar {
    excludeDevTools.set(false)
}

tasks.bootBuildImage {
    excludeDevTools.set(false)
}

2. 配置DevTools远程密钥

Spring DevTools的远程端点默认不会启用,必须配置spring.devtools.remote.secret参数才会激活,你可以在docker-compose.yml中为容器注入对应环境变量:

services:
  你的服务名:
    image: 你构建的Spring Boot镜像名称
    ports:
      - 8080:8080
    environment:
      # 和本地IDEA配置的密钥保持一致即可
      - SPRING_DEVTOOLS_REMOTE_SECRET=自定义的开发密钥

3. 调整IntelliJ运行配置

你已经将主类设置为org.springframework.boot.devtools.RemoteSpringApplication,还需要补充两个配置:

  • 程序实参(Program arguments)填写远程服务的访问地址,例如http://localhost:8080
  • VM选项(VM options)添加参数-Dspring.devtools.remote.secret=你自定义的开发密钥,和容器内配置的密钥完全一致

验证流程

配置完成后按顺序执行以下操作验证:

  1. 重新执行./gradlew bootBuildImage构建新镜像
  2. 重启docker-compose服务
  3. 启动IntelliJ的RemoteSpringApplication进程
  4. 修改代码后按Ctrl+F9(Windows)/Command+F9(Mac)触发生成,即可完成热重载

注意事项

该配置仅适用于开发环境,禁止在生产环境打包引入DevTools或开启远程端点。

内容的提问来源于stack exchange,提问作者Nikola Stojaković

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:18:00