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

5

在我的IntelliJ/Gradle/Java项目中,将sourceCompatibilitytargetCompatibility设置为JavaVersion.VERSION_11没有预期的效果。

即使我在项目结构中手动将项目SDK项目语言级别设置为11,但在我刷新Gradle项目(或导入更改)后,它会恢复到8和6。请参见下面的图像:

enter image description here


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

enter image description here

唯一的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'
}

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

以下是环境信息:

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

这是我的SDK的图片:

图片描述


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

group 'test'
version '1.0-SNAPSHOT'

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

repositories {
    ...

还有根据同一篇文章上的另一个回答进行以下配置:

group 'test'
version '1.0-SNAPSHOT'

allprojects {
    apply plugin: 'java'

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

repositories {
    ...
1个回答

1
若遇到此类问题,工具的兼容性很重要,您可以将IDE版本升级至>= 2018.2版本。引用JetBrains博客#Java11 in IntelliJ IDEA 2018.2的话:

下一个Java版本将于九月发布,而IntelliJ IDEA 2018.2已经准备好支持它了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接