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