Gradle / IntelliJ IDEA:sourceCompatibility 在 IDE 设置中恢复为以前的值

Mir*_*ili 5 intellij-idea gradle java-8 source-compatibility java-11

在我的 IntelliJ/Grade/Java 项目中设置sourceCompatibilitytargetCompatibilityJavaVersion.VERSION_11没有预期的效果。

即使我设置项目SDK项目语言水平项目结构手动11,之后我恢复了8和6 刷新摇篮项目(或导入的变化)。见下图:

在此处输入图片说明


确保我创建了一个新项目并在其中测试这些。这是它的树视图:

在此处输入图片说明

唯一的build.gradle文件:

plugins {
    id 'java'
}

group 'test'
version '1.0-SNAPSHOT'

sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
}
Run Code Online (Sandbox Code Playgroud)

Gradle 版本4.10.2与您在gradle-wrapper.properties文件中看到的一样

#Tue Nov 13 00:53:45 IRST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
Run Code Online (Sandbox Code Playgroud)

这是环境信息:

IntelliJ IDEA 2018.1.5 (Community Edition)
Build #IC-181.5281.24, built on June 12, 2018
JRE: 1.8.0_152-release-1136-b39 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
Run Code Online (Sandbox Code Playgroud)

这是来自我的 SDK 的图像:

在此处输入图片说明


另外,根据这个答案,我对build.gradle进行了以下配置,但问题仍然存在:

group 'test'
version '1.0-SNAPSHOT'

allprojects {
    apply plugin: 'java'
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
}

repositories {
    ...
Run Code Online (Sandbox Code Playgroud)

并且还根据同一帖子上的另一个答案进行了以下配置:

group 'test'
version '1.0-SNAPSHOT'

allprojects {
    apply plugin: 'java'

    tasks.withType(JavaCompile) {
        sourceCompatibility = JavaVersion.VERSION_11
        targetCompatibility = JavaVersion.VERSION_11
    }
}

repositories {
    ...
Run Code Online (Sandbox Code Playgroud)

Nam*_*man 1

对于此类工具兼容性问题,您可以将 IDE 版本升级到>= 2018.2的版本的版本。

引用IntelliJ IDEA 2018.2 中的JetBrains 博客#Java11

Java 的下一个版本将于 9 月发布,IntelliJ IDEA 2018.2 已为此做好准备。