Apache Groovy在JDK16/17执行gradlew clean dist构建失败求助
Apache Groovy项目构建问题解决方案
JDK16.0.2编译不兼容问题
- 错误详情:
org/apache/groovy/gradle/SharedConfiguration类文件版本为61.0(对应JDK17),但JDK16仅支持最高60.0版本,导致解析失败。 - 结论:项目部分Gradle配置类已用JDK17编译,必须使用JDK17及以上版本构建,JDK16无法满足要求。
JDK17.0.2构建报错处理
1. java.lang.ClassNotFoundException: precompiled_OrgApacheGroovyBadPracticesDetection
- 触发原因:预编译代码缓存生成异常,干净克隆后的首次构建可能出现缓存未初始化问题。
- 修复步骤:
- 清理构建缓存:执行
./gradlew clean --no-build-cache - 删除项目根目录下的
.gradle文件夹 - 重新执行构建:
./gradlew clean dist
- 清理构建缓存:执行
2. 依赖验证失败
- 触发原因:Gradle依赖校验机制检测到本地依赖的校验和与项目预设值不匹配,或仓库同步异常。
- 修复步骤:
- 检查项目根目录的
gradle/verification-metadata.xml,定位校验和不匹配的依赖项 - 若确认依赖来源安全,执行
./gradlew --write-verification-metadata sha256重新生成校验和配置文件 - 若为仓库同步问题,修改
build.gradle中的仓库配置,切换至稳定的Maven镜像源
- 检查项目根目录的
额外优化建议
- 检查Gradle版本:查看
gradle/wrapper/gradle-wrapper.properties中的distributionUrl,确保使用Gradle 7.3及以上版本(对JDK17支持更完善) - 禁用并行与守护进程:尝试执行
./gradlew clean dist --no-parallel --no-daemon,避免并发构建导致的缓存冲突
内容的提问来源于stack exchange,提问作者RJLyders
相关产品推荐
相关产品推荐

