Spring Boot gradle build - 无效的源版本:11

Posted

技术标签:

【中文标题】Spring Boot gradle build - 无效的源版本:11【英文标题】:Spring Boot gradle build - invalid source release: 11 【发布时间】:2022-01-16 02:04:53 【问题描述】:

我正在尝试使用此命令构建我的 Spring Boot 项目。

./gradlew build
但它不断抛出这个错误。 '任务':compileJava'执行失败。无效的源版本:11'。 我的项目使用的是 java 版本 11,IntelliJ java 版本也设置为 11。 这是迄今为止我在 IntelliJ 上所做的 Java 版本设置。 1.设置——构建、执行、部署——构建工具——Gradle -> 设置为 11。 [![在此处输入图像描述][1]][1] 2.设置-构建、执行、部署-编译器-Java编译器-项目字节码版本 -> 设置为 11。 [![在此处输入图片说明][1]][1]

    IntelliJ 终端上的 java -version 命令 -> 设置为 11.0.12

    项目结构 - 项目设置 - 项目 - 项目 SDK: -> 设置为 11。

    项目结构 - 项目设置 - 模块 - 模块 SDK: -> 设置为 11。

    项目结构 - 平台设置 - SDKs - JDK 主路径: -> 设置为 11。

    系统环境路径 - JAVA_HOME -> 设置为 11。

    build.gradle - sourceCompatibility, targetCompatibility -> 设置为 11。

当我跑完这一切之后

./gradlew build

结果

我想我已经尽了一切可能。有没有其他设置可以试试??

【问题讨论】:

【参考方案1】:

有两种解决方案。问题很可能发生,因为 Gradle Wrapper 试图在 Java_home 中找到 JDK 11,但未能在那里找到它。我不认为这是因为您使用了一些不支持 jdk11 的旧依赖项。

解决方案1

明确提及您要在终端上使用的 JDK。 例如,而不是

./gradlew build

使用

./gradlew build -Dorg.gradle.java.home=yourjdk11homepath

您的路径可能类似于:

C:\\Program Files\\OpenJDK\\jdk-11.0.3

解决方案 2

如果您不想在使用 gradle wrapper 构建项目时应用解决方案 1,请在 gradle.properties 文件中设置选项。

在与 build.gradle 和 gradlew 文件相同的目录级别,make

gradle.properties

文件并写入以下内容:

org.gradle.java.home=yourjdk11homepath

同样,您的路径可能类似于:

C:\\Program Files\\OpenJDK\\jdk-11.0.3

【讨论】:

【参考方案2】:

在我的情况下,我的 sdkman 不再支持采用openjdk 11,并且该项目已重命名为 Temurin。

参考:https://sdkman.io/jdks

所以我的 gradle 构建试图解决缺少的采用openjdk 11,但它不能。 我从 Temurin 重新安装了 jdk 11

sdk install java 11.0.14-tem

瞧,它解决了构建问题,我的 gradle 构建成功了。

【讨论】:

【参考方案3】:

将项目 jdk 设置为 1.8 瞬间 11

【讨论】:

设置为 1.8 ?用jdk 11建项目是不是不行? 一些库不支持 11 这就是为什么你需要将其更改为 1.8

以上是关于Spring Boot gradle build - 无效的源版本:11的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 gradle bootrun 编译并获取找不到 spring-boot-gradle-plugin:1.4.0.BUILD-SNAPSHOT

当我在开发模式下停止应用程序并将 build.gradle.kts 与 spring boot 一起使用时出错

多模块 Spring Boot 项目中的 Gradle 依赖插件

Spring Boot gradle build - 无效的源版本:11

Gradle Build 后 Spring Boot 应用程序的主类丢失

如何从 Gradle Multi Build 项目中发布 Spring Boot 应用程序?