Gradle多模块项目中bootBuildImage任务执行失败求助
这个错误是Spring Boot Gradle插件2.6.1版本的注解兼容性问题导致的:BootBuildImage任务中的archiveFile和jar属性用了@Input注解标注RegularFileProperty类型,但Gradle要求这类文件属性必须用@InputFile注解,高版本Gradle(比如错误信息里提到的8.x)对注解校验更严格,直接触发了这个配置错误。
注:你项目声明的Gradle版本是6.8,但错误引用了Gradle 8.0的文档,大概率是本地Gradle环境被升级到了更高版本,才会触发这个旧插件里的潜在问题。
推荐以下几种修复方案,按优先级排序:
方案1:升级Spring Boot插件到修复版本
Spring Boot 2.6.x后续的小版本已经修复了这个注解错误,建议将插件升级到2.6.x分支的最终稳定版2.6.13,同时同步升级依赖管理插件到兼容版本:
修改data-service模块的build.gradle.kts:
plugins { java id("org.springframework.boot") version "2.6.13" id("io.spring.dependency-management") version "1.1.4" id("net.linguica.maven-settings") version "0.5" }
同时去掉dependencies中spring-boot-starter-test的硬编码版本,让依赖管理插件自动匹配:
testImplementation("org.springframework.boot:spring-boot-starter-test")
方案2:降级Gradle到兼容版本
如果不想升级Spring Boot插件,可以把Gradle版本降级到Spring Boot 2.6.1官方支持的最高版本7.4.x。修改项目根目录gradle/wrapper/gradle-wrapper.properties:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip
方案3:临时禁用配置校验(不推荐)
作为临时应急方案,可以在根目录settings.gradle.kts中添加配置关闭Gradle的警告校验,但这会掩盖其他潜在问题,不建议长期使用:
gradle.startParameter.warningMode = WarningMode.None
修改完成后,重新执行构建命令:
./gradlew :data-service:bootBuildImage
内容的提问来源于stack exchange,提问作者monamona

