vik*_*eve 10 java intellij-idea gradle
我想以IDE不可知的方式在gradle中设置java语言级别.
sourceCompatibility = 1.x 在Gradle 2.21中,根级别似乎已弃用.
(编辑:或者是它?IntelliJ给我一个常规的检查错误)
所以我发现了这个,它有效.
idea {
project {
languageLevel = '1.7'
}
}
Run Code Online (Sandbox Code Playgroud)
但是由于idea { }结构的原因,这里的配置是否与IntelliJ IDEA相关联?
有没有办法以IDE不可知的方式做到这一点?
我希望我的gradle构建脚本可以在任何 IDE(无论是IntelliJ IDEA还是Eclipse)或Jenkins(或其他)上运行.
显示了为CLI构建执行此操作的方法.但是我不确定每个IDE是否都会选择它.
allprojects {
tasks.withType(JavaCompile) {
sourceCompatibility = '1.7'
targetCompatibility = '1.7'
}
}
Run Code Online (Sandbox Code Playgroud)
如果您在命令行中使用 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).

所以,我认为这是gradle的idea插件的一个错误。见https://issues.gradle.org/browse/GRADLE-2198
目前,我有时必须在上面的对话框中更改语言级别。
小智 5
添加此作为答案,因为我是从评论中得到的:
不要在 compileJava 任务中使用 sourceCompatibility/targetCompatibility,而是使用:
project.sourceCompatibility = '1.7'
project.targetCompatibility = '1.7'
Run Code Online (Sandbox Code Playgroud)
在相关项目的配置中
| 归档时间: |
|
| 查看次数: |
7089 次 |
| 最近记录: |