In einem Gradle Java-Projekt entspricht der Produktionscode (Java-Code im Verzeichnis "src / main / java") der Java 7-Kompilierung (entspricht der Angabe der Option "-source 1.7 -target 1.7" mit dem Befehl "javac"). ), Aber ich möchte den Testcode (Java-Code unter src / test / java
) kompilieren, der Java 8 entspricht! In einem solchen Fall wusste ich nicht, wie ich "sourceCompatibility" oder "targetCompatibility" in build.gradle angeben sollte, also habe ich versucht, dies zu überprüfen.
Ich musste keine unterschiedlichen Quell- / Zielversionen für Produktions- und Testcode angeben, aber JUnit 5 benötigt zur Laufzeit Java 8 Es scheint aktuell zu sein (Benutzerhandbuch / # Übersicht (Java-Versionen)), daher ist es notwendig, auf der Seite des Produktionscodes mit Java 7 zu kompilieren, aber ich möchte JUnit 5 für den Testcode verwenden! Ich denke, dass Sie in solchen Fällen auf diese Einstellung verweisen können.
Wie im folgenden Beispiel für build.gradle gezeigt
Wenn ja, ist es OK.
apply plugin: 'java'
//⭐️ Quelle für Produktionscode/Zielkompatibilitätseinstellungen
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
//⭐️ Quelle, die nur für Testcode gilt/Zielkompatibilitätseinstellungen
compileTestJava {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
//Ich habe versucht, die sourceSets-Eigenschaft wie folgt zu verwenden, aber das hat nicht funktioniert
//sourceSets {
// main {
// sourceCompatibility = JavaVersion.VERSION_1_7
// targetCompatibility = JavaVersion.VERSION_1_7
// }
// test {
// sourceCompatibility = JavaVersion.VERSION_1_8
// targetCompatibility = JavaVersion.VERSION_1_8
// }
//}
repositories {
mavenCentral()
}
dependencies {
// ...
}
Recommended Posts