报错:无效的源发行版
问题描述
在本地搭建 Spring 源码环境时,构建时提示报错 Execution failed for task ':spring-jcl:compileJava'.
,关键报错信息 无效的源发行版:17
。
环境描述
JDK 版本: 1.8.0_271
Spring 版本:6.0.0-SNAPSHOT
解决方案
网上很多解决方案都试过,但没法解决问题,于是,自己找一下解决方案,发现其实很简单。
忽然想起前段时间 Spring Boot 宣布不再支持 Java 8 ,就在想 Spring Boot 基于 Spring ,那 Spring 会不会也不再支持 Java 8。于是看源码根目录文件夹里有个文件叫 SECURITY.md
,点开发现有个 Supported Versions (支持版本)
点开后是这样的:
果然是版本不支持导致的,所以直接切换一下 Spring 源码的分支到 5.3.x
,再构建就没有报错了。
当然,你也可以更新本地 jdk 版本到 17 也可以解决。
ps:5.3.x
版本部分代码涉及到 Java 11 的内容,构建时可能会出错,建议 jkd 版本是 Java 8 的同学使用 5.3.1
版本较为稳妥。(20220608更新:jdk 8 也无法运行 5.3.1,由于spring-framework-5.3.1\spring-core\src\main\java\org\springframework\core\metrics\jfr\FlightRecorderStartupEvent.java
这个文件用到了jkd.jfr
程序包的内容,而jkd.jfr
是从 Java 9 才开始出现,所以这里迫不得已切换到 Java 11)
报错:Could not resolve all dependencies for configuration ‘detachedConfiguration2’
问题描述
debug / build
时报错 Could not resolve all dependencies for configuration 'detachedConfiguration2'
详细报错:
Error resolving plugin [id: 'io.spring.gradle-enterprise-conventions', version: '0.0.2']
> Could not resolve all dependencies for configuration 'detachedConfiguration2'.
> Could not determine artifacts for io.spring.gradle-enterprise-conventions:io.spring.gradle-enterprise-conventions.gradle.plugin:0.0.2
> Could not get resource 'https://repo.spring.io/plugins-release/io/spring/gradle-enterprise-conventions/io.spring.gradle-enterprise-conventions.gradle.plugin/0.0.2/io.spring.gradle-enterprise-conventions.gradle.plugin-0.0.2.jar'.
> Could not HEAD 'https://repo.spring.io/plugins-release/io/spring/gradle-enterprise-conventions/io.spring.gradle-enterprise-conventions.gradle.plugin/0.0.2/io.spring.gradle-enterprise-conventions.gradle.plugin-0.0.2.jar'. Received status code 401 from server: Unauthorized
解决方案
找到 settings.gradle
文件
plugins {
id "com.gradle.enterprise" version "3.2"
id "io.spring.gradle-enterprise-conventions" version "0.0.2"
}
注释掉 id "io.spring.gradle-enterprise-conventions" version "0.0.2"
plugins {
id "com.gradle.enterprise" version "3.2"
//id "io.spring.gradle-enterprise-conventions" version "0.0.2"
}