Ich habe ein Gradle-Projekt, das aus einem Android-Bibliotheksmodul und einem einfachen alten Java-Modul besteht. (Der Android-Bibliothek-Modul verfügt über eine Abhängigkeit von der Ebene Java-Modul.)Gradle Refresh in IntelliJ ändert das Sprachlevel der Module
In der build.gradle
Datei des Android-Bibliothek-Modul Ich habe dies:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Und in der build.gradle
Datei des plain old Java-Modul ich habe dies:
compileJava {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
als ich die Gradle Taste IDEA in IntelliJ aktualisieren traf 15 das Sprachniveau für das Android-Modul Java 8 gesetzt ist (wie ich erwarten würde), aber das Sprachniveau des Java-Modul auf Java 1.6 gesetzt. Warum ist dies der Fall und gibt es eine Möglichkeit für IntelliJ, die Sprachebene des Java-Moduls stattdessen auf Java 8 bei einer Aktualisierung einzustellen?
Dank für den Zeiger auf die Java-Version für die Android-Modul fällt bis auf '1.7'. (Ich dachte, ich könnte mit Java 1.8 kompilieren, solange ich nicht die Java 1.8-Sprachfunktionen verwendet habe.) Ich habe die Java-Version im einfachen alten Java-Modul auch auf '1.7' gesetzt und nun setzt IntelliJ den' Projekt-Sprachlevel' zu '8' und der' Sprachlevel' beider Module im Projekt zu '7' automatisch jedes Mal wenn ich ein frisches mache. Seltsam, warum die Werte auf der Projektebene und auf der Modulebene unterschiedlich sind, aber es funktioniert für mich, also werde ich es für jetzt lassen. –