1
私はAndroidライブラリモジュールと普通の古いJavaモジュールで構成されるGradleプロジェクトを持っています。 (Androidのライブラリモジュールは、プレーンJavaモジュールに依存しています。)私はこれを持っているAndroidのライブラリモジュールのbuild.gradle
ファイルでIntelliJのGradle Refreshはモジュールの言語レベルを変更します
:
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
そして、昔ながらのJavaモジュールのbuild.gradle
ファイルで
compileJava {
sourceCompatibility = "1.8"
targetCompatibility = "1.8"
}
(私が期待される)が、Javaモジュールの言語レベル:私はこれを持っていますJava 1.6に設定します。 これはなぜ、IntelliJがJavaモジュールの言語レベルをJava 8に設定するのですか?あなたがGradle
のための新しいJack
コンパイラやRetrolambda
プラグインを使用している場合にのみJavaVersion.VERSION_1_8
を使用することができます
感謝を。 (私は、Java 1.8言語機能を使用していない限り、Java 1.8でコンパイルできると思っていました)。普通の古いJavaモジュールのJavaバージョンも「1.7」にドロップしましたが、IntelliJは現在、「Project Language Level」新しいモジュールを作成するたびに自動的に '7 'に設定されます。なぜプロジェクトレベルとモジュールレベルの値が違うのか不思議ですが、それは私のために働くので、今はそれを残しておきます。 –