VSCode 调试器对 Spring Boot 热部署 DevTools 的兼容配置

胖敏吖_3687

胖敏吖_3687

2026-06-22

621人浏览

原创

vscode调试器启动时devtools不生效,需在launch.json的vmargs中添加-dspring.devtools.restart.enabled=true和-dspring.devtools.restart.poll-interval=2000,并确保java.autobuild.enabled开启、livereload端口未冲突、gradle项目必须用bootrun而非直接调试主类。

vscode 调试器对 spring boot 热部署 devtools 的兼容配置

VSCode 调试器启动时 DevTools 不生效?检查 launch.json 的 JVM 参数

VSCode 默认调试器(java 类型)启动时,若未显式启用 spring-boot-devtools 的类加载机制,热部署会静默失效——哪怕 pom.xml 和 application.properties 全部正确。根本原因是 DevTools 依赖特定的类加载器策略,而默认调试配置不触发它。

必须在 .vscode/launch.json 的 vmArgs 中加入以下参数:

"vmArgs": "-Dspring.devtools.restart.enabled=true -Dspring.devtools.restart.poll-interval=2000"

关键点:

  • -Dspring.devtools.restart.enabled=true 是 JVM 启动时的强制开关,比 application.properties 更早生效,能绕过 profile 激活失败导致的漏判
  • poll-interval 设为 2000(毫秒)可缓解 VSCode 文件保存与编译完成之间的微小延迟,避免“改了但没重启”
  • 不要加 -noverify 或 -XX:+TieredStopAtLevel=1 等干扰类加载的参数,它们可能破坏 DevTools 的 restart classloader

断点命中但热部署卡住?确认调试器没禁用自动构建

VSCode 调试器运行时,如果 java.autobuild.enabled 被关闭,修改代码后 target/classes 目录不会更新,DevTools 就永远收不到变更信号——此时控制台可能显示 “Restarting ApplicationContext…”,但实际没 reload 任何类。

验证和修复步骤:

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 打开设置,搜索 java.autobuild.enabled,确保勾选;若该选项灰掉,说明 Extension Pack for Java 未正确加载或 java.home 配置错误
  • 检查 .vscode/settings.json 是否存在覆盖性配置,例如 "java.compile.nullAnalysis.mode": "off",它会抑制整个编译流程
  • 手动触发一次编译:右键 src/main/java → Compile Java File,观察 target/classes 下对应 .class 文件时间戳是否变化

修改 Controller 但页面没刷新?检查 LiveReload 端口冲突

DevTools 的 spring.devtools.livereload.enabled=true 默认监听 35729 端口。VSCode 调试器启动时若该端口被占用(常见于 Chrome 扩展、旧 Node 进程或另一 Spring Boot 实例),LiveReload 会静默失败,浏览器不刷新,但后台重启仍发生——造成“热部署半生效”的错觉。

解决方式:

  • 在 application.properties 中显式指定新端口:spring.devtools.livereload.port=35730
  • 启动前用终端执行 lsof -i :35729(macOS/Linux)或 netstat -ano | findstr :35729(Windows)查占用进程并 kill
  • 浏览器禁用所有 LiveReload 插件(如官方 LiveReload extension),仅依赖 DevTools 内置服务

Gradle 项目热部署总失败?别用 gradle run 启动调试器

VSCode 的 Java 调试器直接调用 java -jar 或 java -cp 启动主类,它不经过 Gradle 的 bootRun 生命周期钩子。这意味着 Gradle 特有的 developmentOnly 依赖作用域、资源过滤、甚至 spring-boot-devtools 的 classpath 排除逻辑,全被跳过。

正确做法只有两种:

  • 坚持用 Maven:VSCode 对 Maven 的集成更成熟,spring-boot-devtools 的 runtime scope 能被准确识别
  • 若必须用 Gradle,则在 launch.json 中改用 type: "shell",命令设为:./gradlew --no-daemon bootRun,并确保 build.gradle 中已声明 developmentOnly 'org.springframework.boot:spring-boot-devtools'

Gradle 用户最容易忽略的是:developmentOnly 在 VSCode 调试器下不生效,必须走 Gradle 自身的运行流程才能激活 DevTools。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
spring框架介绍
spring框架介绍

本专题整合了spring框架相关内容,想了解更多详细内容,请阅读专题下面的文章。

2025.08.06

2531

22

Java Spring Security 与认证授权
Java Spring Security 与认证授权

本专题系统讲解 Java Spring Security 框架在认证与授权中的应用,涵盖用户身份验证、权限控制、JWT与OAuth2实现、跨站请求伪造(CSRF)防护、会话管理与安全漏洞防范。通过实际项目案例,帮助学习者掌握如何 使用 Spring Security 实现高安全性认证与授权机制,提升 Web 应用的安全性与用户数据保护。

2026.01.26

457

25

vscode是什么_vscode怎么安装配置
vscode是什么_vscode怎么安装配置

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

2023.06.30

1355

18

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.21

2872

3

vscode使用的框架介绍
vscode使用的框架介绍

VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1969

12

vscode一般用来写什么语言
vscode一般用来写什么语言

VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1727

8

vscode可以写什么语言
vscode可以写什么语言

vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

2607

12

vscode中文设置方法
vscode中文设置方法

方法一:在设置页面中,搜索“locale”,并选择“zh-cn”。方法二:按“Ctrl Shift P”快捷键,输入“Configure Display Language”,将语言修改为“zh-cn”。如果上述方法无效,可考虑安装中文插件。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1838

14

vscode用途介绍
vscode用途介绍

Visual Studio Code(VSCode)是一款由 Microsoft 开发的多功能文本编辑器,适用于各种编程语言。作为一款开源软件,VSCode 拥有代码高亮、自动补全、调试、Git 集成等强大功能,成为程序员不可或缺的工具。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1262

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程