Java8+Gradle4.10构建时报错jgit类为更高Java版本编译如何解决
问题根因
类文件版本55.0对应Java 11编译的产物,你当前使用的Java 8最高仅支持52.0版本的类文件,该报错触发的核心原因是:
- Eclipse JGit从6.0版本开始,将最低运行环境要求提升为Java 11
- 你项目中要么是JGit依赖声明用了动态版本规则,要么是依赖的其他第三方插件/组件传递引入了6.0以上版本的JGit,哪怕你没有修改业务代码,拉取到最新版本的JGit后就会触发兼容性报错
解决方案
方案一:保持Java 8环境,强制锁定JGit兼容版本
兼容Java 8的最新JGit稳定版为5.13.2.202306221912-r,你可以在build.gradle中添加规则强制锁定所有JGit依赖的版本:
// 放在build.gradle文件根层级即可 configurations.all { resolutionStrategy { // 强制指定JGit版本为兼容Java8的版本 force 'org.eclipse.jgit:org.eclipse.jgit:5.13.2.202306221912-r' // 如果你项目用到了JGit的其他子包,也同步添加锁定规则,比如: // force 'org.eclipse.jgit:org.eclipse.jgit.http.apache:5.13.2.202306221912-r' // force 'org.eclipse.jgit:org.eclipse.jgit.ssh.apache:5.13.2.202306221912-r' } }
修改后执行以下命令验证版本锁定是否生效:./gradlew dependencies | grep jgit
确认输出中所有JGit相关的依赖版本均为5.13.x即可。
方案二:升级运行环境
如果可以调整项目环境,直接将JDK版本升级到11或更高版本,同时将Gradle版本升级到6.0及以上的兼容版本即可解决兼容性问题。
内容的提问来源于stack exchange,提问作者Trayan Momkov
相关产品推荐
相关产品推荐

