Gradle IntelliJ 中的刷新更改了模块的语言级别
Gradle refresh in IntelliJ changes language level of modules
我有一个 Gradle 项目,它由一个 Android 库模块和一个普通的旧 Java 模块组成。 (Android 库模块依赖于普通 Java 模块。)
在 Android 库模块的 build.gradle
文件中,我有这个:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
在普通旧 Java 模块的 build.gradle
文件中,我有这个:
compileJava {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
当我在 IntelliJ IDEA 15 中点击 Gradle 刷新按钮时,Android 模块的语言级别设置为 Java 8(如我所料)但是Java 模块的语言级别设置为 Java 1.6。 为什么会这样,IntelliJ 有没有办法在刷新时将 Java 模块的语言级别设置为 Java 8?
如果您使用新的 Jack
编译器或 Gradle
的 Retrolambda
插件,您只能使用 JavaVersion.VERSION_1_8
。
所以你应该使用:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
就 Intellij/Android Studio 语言设置而言:
- 文件 -> 项目结构:
- 您应该相应地设置项目语言设置:
我有一个 Gradle 项目,它由一个 Android 库模块和一个普通的旧 Java 模块组成。 (Android 库模块依赖于普通 Java 模块。)
在 Android 库模块的 build.gradle
文件中,我有这个:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
在普通旧 Java 模块的 build.gradle
文件中,我有这个:
compileJava {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
当我在 IntelliJ IDEA 15 中点击 Gradle 刷新按钮时,Android 模块的语言级别设置为 Java 8(如我所料)但是Java 模块的语言级别设置为 Java 1.6。 为什么会这样,IntelliJ 有没有办法在刷新时将 Java 模块的语言级别设置为 Java 8?
如果您使用新的 Jack
编译器或 Gradle
的 Retrolambda
插件,您只能使用 JavaVersion.VERSION_1_8
。
所以你应该使用:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
就 Intellij/Android Studio 语言设置而言:
- 文件 -> 项目结构:
- 您应该相应地设置项目语言设置: