VS Code中Gradle项目调试Maven依赖blade-core的问题
Gradle项目调试关联Maven子模块的问题解决
问题场景
你的项目结构如下:
workspace - blade pom.xml -blade-core pom.xml - target com.hellokaton.blade.2.1.3.jdk17.jar com.hellokaton.blade.2.1.3.jdk17-source.jar - proj2 src/ settings.gradle build.gradle etc.
需要在调试Gradle项目proj2时,能进入Maven多模块项目blade的blade-core子模块源码,但设置的断点从未命中,仅显示.class文件接口。
解决方案
VS Code完全支持该场景,无需切换到Eclipse。问题出在配置的几个关键环节,调整如下:
1. 修正settings.gradle的模块引入配置
当前引入的是blade父模块,而实际需要调试的是blade-core子模块,直接关联子模块路径:
include ':proj2', ':blade-core' project(':blade-core').projectDir = new File("/home/david/dev/blade/blade-core")
2. 替换依赖为项目本地源码依赖
原配置中引用的是本地Maven仓库的jar包,Gradle会优先使用仓库资源而非本地源码。修改build.gradle的依赖配置:
dependencies { // 注释掉原Maven仓库依赖 // implementation 'com.hellokaton:blade:2.1.3.jdk17' // implementation 'com.hellokaton:blade:2.1.3.jdk17-sources' // 替换为本地项目依赖 implementation project(':blade-core') // 保留其他原有依赖 implementation group: 'javax.persistence', name: 'persistence-api', version: '1.0' implementation group: 'org.json', name: 'json', version: '20220924' implementation group: 'junit', name: 'junit', version: '4.13' testImplementation group: 'junit', name: 'junit', version: '4.13' ... }
3. 配置VS Code调试关联源码
确保已安装Extension Pack for Java插件,在.vscode/launch.json中添加源码路径配置(如果没有该文件,可通过调试面板生成):
{ "version": "0.2.0", "configurations": [ { "type": "java", "name": "Debug Proj2", "request": "launch", "mainClass": "你的proj2主类全限定名", "projectName": "proj2", "sourcePaths": ["/home/david/dev/blade/blade-core/src/main/java"] } ] }
4. 清理重建项目
- 进入
blade-core目录,执行Maven编译:mvn clean install -DskipTests,确保源码编译为最新class文件 - 进入
proj2目录,执行Gradle清理构建:./gradlew clean build
完成以上步骤后,重新启动调试,blade-core中的断点即可正常命中。
内容的提问来源于stack exchange,提问作者Olddave
相关产品推荐
相关产品推荐

