Files
martial-master/.vscode/DEBUG_GUIDE.md
n72595987@gmail.com 9c7604d98b chore: 配置开发环境并更新数据库设置
- 添加 VS Code 调试配置(launch.json, tasks.json)
- 添加 VS Code 调试使用指南
- 更新数据库端口为高位端口(MySQL: 33066, Redis: 63379)
- 更新应用服务器端口为 8123
- 启用 blade-starter-liteflow 依赖
- 添加 SDKMAN 配置文件(.sdkmanrc)
- 添加项目开发文档(CLAUDE.md)
- 更新 .gitignore 忽略日志和部署文件

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 13:26:22 +08:00

303 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# VS Code 调试指南
## 前置要求
确保已安装以下 VS Code 扩展:
1. **Extension Pack for Java** (Microsoft)
- 包含Language Support for Java, Debugger for Java, Maven for Java 等
2. **Spring Boot Extension Pack** (VMware)
- 包含Spring Boot Tools, Spring Initializr 等
安装方式:
-`Ctrl+Shift+X` 打开扩展面板
- 搜索 "Extension Pack for Java" 并安装
- 搜索 "Spring Boot Extension Pack" 并安装
## 一、Debug 运行(推荐)
### 方法 1使用侧边栏最简单
1. **打开运行和调试面板**
- 快捷键:`Ctrl+Shift+D` (Windows/Linux) 或 `Cmd+Shift+D` (Mac)
- 或点击左侧活动栏的「运行和调试」图标
2. **选择配置**
- 在顶部下拉框选择:`Debug Spring Boot App (Dev)`
3. **开始调试**
- 点击绿色的「启动调试」按钮(三角形)
- 或按 `F5`
4. **设置断点**
- 在代码行号左侧点击,出现红点即为断点
- 例如在 Controller 方法中打断点
5. **调试操作**
- `F5` - 继续执行
- `F10` - 单步跳过
- `F11` - 单步进入
- `Shift+F11` - 单步跳出
- `Shift+F5` - 停止调试
### 方法 2右键快速启动
1. **打开主类**
- 打开 `src/main/java/org/springblade/Application.java`
2. **右键运行**
- 在编辑器中右键
- 选择 `Run Java``Debug Java`
### 方法 3使用命令面板
1.`Ctrl+Shift+P` (或 `Cmd+Shift+P`)
2. 输入 `Java: Run`
3. 选择 `Debug Spring Boot App (Dev)`
## 二、普通运行(无调试)
### 使用终端运行
```bash
# 在 VS Code 集成终端中Ctrl+`
cd /remote_dev/martial/martial-master
# 加载 Java 环境
source ~/.sdkman/bin/sdkman-init.sh
# 运行应用
mvn spring-boot:run
```
### 使用 Maven 侧边栏
1. 点击左侧 Maven 图标M
2. 展开 `blade-api``Plugins``spring-boot`
3. 右键 `spring-boot:run``Run Maven Goal`
## 三、构建任务
`Ctrl+Shift+B` 可以快速访问构建任务:
- **Maven: Clean** - 清理 target 目录
- **Maven: Compile** - 编译项目
- **Maven: Package (Skip Tests)** - 打包(默认任务)
- **Maven: Install BladeX Framework** - 编译 BladeX 框架依赖
- **Spring Boot: Run Dev** - 后台运行开发环境
- **Kill Java Process on Port 8123** - 停止占用 8123 端口的进程
## 四、端口转发设置
### 自动转发(推荐)
VS Code Remote SSH 会自动检测端口 8123只需
1. 应用启动后,底部会出现提示
2. 点击「在浏览器中打开」即可
### 手动添加端口
1. **打开端口面板**
-`Ctrl+Shift+P`
- 输入 `Forward a Port`
- 输入 `8123`
2. **或使用端口视图**
- 点击底部状态栏的「端口」标签
- 点击「+」添加端口
- 输入 `8123`
3. **访问应用**
- 浏览器访问:`http://localhost:8123/doc.html`
- Knife4j API 文档自动打开
### 批量转发(开发常用端口)
在端口面板添加:
- `8123` - Spring Boot 应用
- `33066` - MySQL
- `63379` - Redis
## 五、调试配置说明
已配置的调试选项:
### 1. Debug Spring Boot App (Dev)
- **用途**:开发环境调试
- **配置文件**application-dev.yml
- **快捷键**F5 启动
### 2. Debug Spring Boot App (Test)
- **用途**:测试环境调试
- **配置文件**application-test.yml
### 3. Debug Current Java File
- **用途**:调试单个 Java 文件(有 main 方法)
- **使用**:打开文件后按 F5
### 4. Attach to Remote JVM
- **用途**:连接到远程 JVM 进程
- **端口**5005
- **使用场景**:当应用已在运行时附加调试器
## 六、常见问题
### 问题 1找不到主类
**解决方案**
```bash
# 清理并重新编译
mvn clean compile
# 或在 VS Code 中
Ctrl+Shift+P -> Java: Clean Java Language Server Workspace
```
### 问题 2端口 8123 已被占用
**解决方案**
```bash
# 查找占用端口的进程
lsof -i:8123
# 或使用配置的任务
Ctrl+Shift+P -> Tasks: Run Task -> Kill Java Process on Port 8123
```
### 问题 3Maven 依赖未找到
**解决方案**
```bash
# 先编译 BladeX 框架
cd /remote_dev/martial/martial-tool
mvn clean install -DskipTests
# 或使用任务
Ctrl+Shift+P -> Tasks: Run Task -> Maven: Install BladeX Framework
```
### 问题 4断点不生效
**原因**:代码未重新编译
**解决方案**
- 停止调试 (Shift+F5)
- 重新编译 (Ctrl+Shift+B)
- 再次启动调试 (F5)
### 问题 5MySQL/Redis 连接失败
**检查服务**
```bash
# MySQL
docker ps --filter "name=dev-mysql"
# Redis
docker ps --filter "name=dev-redis"
# 如未运行,启动它们
docker start dev-mysql dev-redis
```
## 七、调试技巧
### 1. 条件断点
- 在断点上右键 → `Edit Breakpoint`
- 输入条件,例如:`userId == 1`
### 2. 日志断点
- 右键断点 → `Edit Breakpoint`
- 勾选 `Log Message`
- 输入消息,例如:`User ID: {userId}`
### 3. 异常断点
- 调试面板 → `BREAKPOINTS` → 点击 `+`
- 选择 `Java Exception Breakpoints`
- 输入异常类名,如:`NullPointerException`
### 4. 查看变量
- 鼠标悬停在变量上查看值
- 或在左侧 `VARIABLES` 面板查看所有变量
- 右键变量 → `Copy Value` 复制值
### 5. 表达式求值
- 调试时,点击 `DEBUG CONSOLE`
- 输入表达式并执行,例如:
```java
user.getName()
list.size()
```
### 6. 热重载Spring Boot DevTools
- 修改代码后自动重启应用
- 已在 `pom.xml` 中配置(如果需要)
## 八、快捷键速查表
| 操作 | Windows/Linux | Mac |
|------|---------------|-----|
| 开始调试 | F5 | F5 |
| 停止调试 | Shift+F5 | Shift+F5 |
| 单步跳过 | F10 | F10 |
| 单步进入 | F11 | F11 |
| 单步跳出 | Shift+F11 | Shift+F11 |
| 继续执行 | F5 | F5 |
| 切换断点 | F9 | F9 |
| 打开调试面板 | Ctrl+Shift+D | Cmd+Shift+D |
| 打开终端 | Ctrl+` | Ctrl+` |
| 命令面板 | Ctrl+Shift+P | Cmd+Shift+P |
| 构建任务 | Ctrl+Shift+B | Cmd+Shift+B |
## 九、开发工作流
### 典型开发流程:
1. **启动服务**
```bash
# 确保 MySQL 和 Redis 运行
docker ps
```
2. **开始调试**
- 按 `F5` 启动应用
- 等待应用启动(看底部终端日志)
3. **转发端口**
- VS Code 自动转发 8123
- 或手动添加
4. **访问应用**
- 浏览器:`http://localhost:8123/doc.html`
5. **设置断点**
- 在 Controller 或 Service 方法中打断点
6. **测试 API**
- 在 Knife4j 界面发起请求
- VS Code 会在断点处暂停
7. **修改代码**
- 停止调试 (Shift+F5)
- 修改代码
- 重新启动调试 (F5)
8. **查看日志**
- 集成终端显示应用日志
- 或查看 `application.log` 文件
## 十、推荐扩展
除了必需的扩展,还推荐:
- **REST Client** - 直接在 VS Code 测试 API
- **Database Client** - 连接 MySQL 查看数据
- **GitLens** - Git 增强工具
- **Error Lens** - 内联显示错误
- **Better Comments** - 增强注释高亮
- **Material Icon Theme** - 美化文件图标
---
**快速开始:按 F5 即可开始调试!**