Dans un projet Gradle Java, le code de production (code Java sous le répertoire src / main / java
) est équivalent à la compilation équivalente à Java 7 (équivalent à spécifier l'option -source 1.7 -target 1.7
avec la commande javac
. ), Mais je veux compiler le code de test (code Java sous src / test / java
) équivalent à Java 8! Dans un tel cas, je ne savais pas comment spécifier sourceCompatibility
ou targetCompatibility
dans build.gradle, alors j'ai essayé de le vérifier.
Je n'ai pas eu à spécifier différentes versions source / cible pour le code de production et de test, mais JUnit 5 nécessite Java 8 au moment de l'exécution Il semble être actuel / user-guide / # overview-java-versions), il est donc nécessaire de compiler avec Java 7 côté code de production, mais je souhaite utiliser JUnit 5 pour le code de test! Je pense que vous pouvez vous référer à ce paramètre dans de tels cas.
Comme indiqué dans l'exemple build.gradle ci-dessous
compileTestJava
Si c'est le cas, tout va bien.
apply plugin: 'java'
//⭐️ source appliquée au code de production/Paramètres de compatibilité cible
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
//⭐️ source qui s'applique uniquement au code de test/Paramètres de compatibilité cible
compileTestJava {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
//J'ai essayé d'utiliser la propriété sourceSets comme ci-dessous, mais cela n'a pas fonctionné
//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