如何在Gradle中设置语言水平?(所以它与IDE无关)

2022-09-03 12:13:40

我想以与 IDE 无关的方式在 gradle 中设置 java 语言级别。

sourceCompatibility = 1.x在根级别似乎在 Gradle 2.21 中已弃用。

(编辑:还是?IntelliJ给了我一个时髦的检查错误)

所以我找到了这个,这有效。

idea {
    project {
        languageLevel = '1.7'
    }
}

但是,由于结构的原因,这里的配置不是将gradle与IntelliJ IDEA联系在一起吗?idea { }

有没有办法以与IDE无关的方式做到这一点?

我希望我的 gradle 构建脚本可以在任何 IDE(无论是 IntelliJ IDEA 还是 Eclipse)或 Jenkins(或其他)上运行。


答案 1

演示了对 CLI 生成执行此操作的方法。但是,我不确定是否每个IDE都会选择它。

allprojects {
    tasks.withType(JavaCompile) {
        sourceCompatibility = '1.7'
        targetCompatibility = '1.7'
    } 
}

答案 2

如果在命令行中使用 Gradle,则语言级别将按照文件中的指定工作正常。build.gradle

但是当将Gradle java项目导入IntelliJ IDEA时,Gradle的插件负责生成IDEA的项目设置文件,

不幸的是,该插件不遵循build.gradle的sourceCompatibility/targetCompatibility属性,而是使用IDEA的设置: File -> Other Settings -> Default Project Structure -> Project Language Level -> 6 (By default). enter image description here

所以,我认为这是gradle的想法插件的一个错误。见 https://issues.gradle.org/browse/GRADLE-2198

目前,我有时必须在上面的对话框中更改语言级别。


推荐