VSCode中Gradle构建失败,抛出org.gradle.api.plugins.internal.DefaultDecoratedConvention异常
看起来你遇到的是VSCode的Java/Gradle插件与Gradle 9.0.0之间的兼容性问题,这种内部类的异常通常是因为旧版本的插件还没适配Gradle 9.x的内部API变动导致的。结合你的项目配置和手动构建正常的情况,给你几个可以尝试的解决方向:
更新VSCode的Java相关插件
你使用的是Extension Pack for Java扩展包,打开VSCode的扩展面板,找到这个包,检查并更新所有关联的插件(比如Language Support for Java™ by Red Hat、Gradle for Java等)到最新版本。旧版本的插件对Gradle 9.0.0的新特性和内部API支持不足,这是这类异常最常见的诱因。调整VSCode的Gradle插件设置
- 打开VSCode设置(快捷键
Ctrl+,),搜索“Gradle: Use Gradle Wrapper”,确保该选项处于勾选状态——虽然你的wrapper配置完全正确,但插件可能存在识别异常,强制使用wrapper能保证和手动构建环境一致。 - 若勾选wrapper后仍有问题,可暂时关闭该选项,让VSCode直接调用你手动安装的Gradle 9.0.0,验证是否是插件对wrapper的调用逻辑出了问题。
- 同时确认“Java: Home”设置指向的JDK路径和你手动构建时使用的完全一致(你当前输出显示是JDK21,和手动环境匹配,但可以再核对一遍)。
- 打开VSCode设置(快捷键
清理缓存排除损坏问题
缓存损坏也可能引发这类奇怪的内部异常,你可以尝试:- 打开VSCode命令面板(
Ctrl+Shift+P),执行“Java: Clean Java Language Server Workspace”命令,按照提示重启VSCode重新加载项目。 - 关闭VSCode后,删除用户目录下
.gradle文件夹中的缓存目录(比如C:\Users\Micro\.gradle\caches),再重新打开项目构建。
- 打开VSCode命令面板(
简化构建脚本排查冲突
你的build.gradle.kts中有些配置属于Gradle的默认值(比如sourceSets的main目录配置,Java插件已经默认识别src/main/java),可以暂时注释掉这部分代码,看看是否是自定义配置与插件逻辑冲突:// sourceSets { // main { // java { // srcDir("src/main/java") // } // } // }临时降级Gradle版本测试
如果以上方法都无效,可以先将Gradle Wrapper降级到8.7(最新稳定版,与9.0.0功能差异极小),修改gradle-wrapper.properties中的distributionUrl:distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip之后在VSCode中重新构建,若异常消失,说明确实是Gradle 9.0.0与当前插件版本不兼容,等插件更新后再升级回9.0.0即可。
另外,你可以在VSCode中打开命令面板,执行“Gradle: Run Build Task”并选择build任务,同时添加--stacktrace参数获取详细的异常栈信息,这能帮助更精准地定位问题根源。不过根据目前的信息,插件版本不兼容是最可能的原因,优先尝试更新插件应该能解决问题。
内容来源于stack exchange




