升级SpringBoot项目Gradle至7.5时遇propdeps插件报错的解决方法
解决Gradle 7.5升级中propdeps插件的COMPILE_CONFIGURATION_NAME报错问题
报错原因
Gradle 7.x版本移除了JavaPlugin.COMPILE_CONFIGURATION_NAME常量(Gradle从5.x开始就逐步废弃compile配置,改用implementation/api替代),而你当前使用的propdeps插件版本不兼容Gradle 7.x,依然依赖这个已被移除的常量,因此触发报错。
解决方法
1. 升级propdeps插件到兼容版本
找到项目根目录build.gradle里的buildscript依赖块,把propdeps插件版本升级到0.21及以上(该版本开始支持Gradle 7.x):
buildscript { repositories { mavenCentral() } dependencies { // 替换为兼容Gradle7.x的propdeps版本 classpath 'net.ltgt.gradle:gradle-propdeps-plugin:0.21' } }
2. 替换代码中过时的常量引用(若升级插件后仍报错)
如果项目自定义代码里直接引用了JavaPlugin.COMPILE_CONFIGURATION_NAME,需要手动替换为Gradle 7.x支持的常量:
- 若原代码用于处理常规编译依赖,替换为
JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME - 若用于暴露对外API的依赖,替换为
JavaPlugin.API_CONFIGURATION_NAME
示例修改:
import org.gradle.api.plugins.JavaPlugin // 旧代码 // def compileConfig = project.configurations.getByName(JavaPlugin.COMPILE_CONFIGURATION_NAME) // 新代码(根据实际场景二选一) def compileConfig = project.configurations.getByName(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME) // 或者 // def compileConfig = project.configurations.getByName(JavaPlugin.API_CONFIGURATION_NAME)
3. 移除propdeps插件(若功能可被Gradle原生替代)
如果项目中propdeps仅用于处理可选依赖或编译期依赖,可直接移除该插件,改用Gradle原生配置:
- 编译期仅需的依赖用
compileOnly - 运行时依赖用
runtimeOnly - 常规业务依赖用
implementation/api
内容的提问来源于stack exchange,提问作者Manoj H U
相关产品推荐
相关产品推荐

