Spring Boot gradle 构建 - 无效源版本:11

Fli*_*lop 13 java build intellij-idea gradle spring-boot

我正在尝试使用以下命令构建我的 Spring Boot 项目:

./gradlew build
Run Code Online (Sandbox Code Playgroud)

但它不断抛出这个错误:

'Execution failed for task ':compileJava'. invalid source release: 11'.
Run Code Online (Sandbox Code Playgroud)

我的项目使用的是 Java 版本 11,IntelliJ Java 版本也设置为 11。

这是我迄今为止在 IntelliJ 上所做的 Java 版本设置:

  1. 设置 - 构建、执行、部署 - 构建工具 - Gradle
    -> 设置为 11。 在此输入图像描述

  2. 设置 - 构建、执行、部署 - 编译器 - Java 编译器 - 项目字节码版本
    -> 设置为 11。 在此输入图像描述

  3. IntelliJ 终端上的 java -version 命令
    -> 设置为 11.0.12
    在此输入图像描述

  4. 项目结构-项目设置-项目-项目SDK:->设置为11。
    在此输入图像描述

  5. 项目结构 - 项目设置 - 模块 - 模块 SDK: -> 设置为 11。
    在此输入图像描述

  6. 项目结构 - 平台设置 - SDKs - JDK 主路径:
    -> 设置为 11。
    在此输入图像描述

  7. 系统环境路径 - JAVA_HOME
    -> 设置为 11。
    在此输入图像描述

  8. build.gradle - 源兼容性、目标兼容性
    -> 设置为 11。
    在此输入图像描述

当我跑步之后

./gradlew build
Run Code Online (Sandbox Code Playgroud)



结果
在此输入图像描述

我想我已经尽力了。还有其他设置我可以尝试吗?

jef*_*gon 15

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

解决方案1

明确提及您想要在终端上使用的 JDK。例如,代替

./gradlew build
Run Code Online (Sandbox Code Playgroud)

使用

./gradlew build -Dorg.gradle.java.home=yourjdk11homepath
Run Code Online (Sandbox Code Playgroud)

你的路径可能是这样的:

C:\\Program Files\\OpenJDK\\jdk-11.0.3
Run Code Online (Sandbox Code Playgroud)

解决方案2

如果您不想在使用 gradle 包装器构建项目时应用解决方案1,则可以在 gradle.properties 文件中设置该选项。

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

gradle.properties
Run Code Online (Sandbox Code Playgroud)

文件并写入以下内容:

org.gradle.java.home=yourjdk11homepath
Run Code Online (Sandbox Code Playgroud)

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

C:\\Program Files\\OpenJDK\\jdk-11.0.3
Run Code Online (Sandbox Code Playgroud)