[JAVA] Comment définir différentes versions source / cible pour le code de production et le code de test

introduction

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.

Comment définir sourceCompatibility / targetCompatibility

Comme indiqué dans l'exemple build.gradle ci-dessous

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

Comment définir différentes versions source / cible pour le code de production et le code de test
Comment définir le code de caractère et le code de saut de ligne dans Eclipse
Comment gérer différentes versions de rbenv et Ruby
Comment utiliser des séquences \ t Escape différentes pour Mac et Windows-java
[R Spec on Rails] Comment écrire du code de test pour les débutants par les débutants
J'ai testé comment utiliser le test / l'unité de Ruby et le code de Janken.
Comment configurer et utiliser kapt
Nécessaire pour iOS 14? Comment définir NSUserTrackingUsageDescription
Articles et livres utiles pour étudier le code de test
[Java] Comment tester s'il est nul dans JUnit
Réflexion sur la façon d'utiliser Ionic-Native, Hybrid et HTML5 pour la production d'applications mobiles
[Java] (pour MacOS) Méthode de définition du chemin de classe
Comment configurer et utiliser jEnv (Mac)
Comment écrire du code de test avec la certification de base
Comment configurer la vision par ordinateur pour le suivi des images et des vidéos avec TrackingJs
Comment définir l'injection de dépendance Spring Boot (DI)
Comment écrire un test unitaire pour Spring Boot 2
Comment faire un test unitaire avec JVM sur une source à l'aide de RxAndroid
[RSpec] Comment tester les messages d'erreur définis indépendamment par Shoulda-Matchers
Comment tester avec des images lors de l'utilisation d'ActiveStorage et de Faker
Comment spécifier le code de caractère et le code de saut de ligne avec JAXB
Comment inverser la compilation du fichier apk en code source Java avec MAC
Comment utiliser l'icône Font Awesome pour ul et li
Comment définir et décrire des variables d'environnement à l'aide de Rails zsh
Procédures pour transmettre RealmObject à Fragment et comment utiliser Parceler
Comment créer et lancer un Dockerfile pour Payara Micro
[Code de test d'intégration] Comment sélectionner un élément dans date_select
Comment écrire du bon code
Comment définir nginx de Docker
Comment définir des constantes Java
[Rails] Comment obtenir l'URL de la source de transition et la rediriger
Comment définir l'adresse IP et le nom d'hôte de CentOS8
Comment définir et utiliser un profil avec une configuration basée sur des annotations dans le framework Spring