[JAVA] Meilleures pratiques de gestion des versions de package dépendant de Gradle

Aperçu

À la suite de l'examen de chacun des éléments suivants, il semble que la gestion de la cible avec la propriété outside + array soit transparente et facile à maintenir. J'ai évoqué divers projets open source et les opinions d'autres ingénieurs.

Écriture solide

build.gradle


dependencies {
    // JUnit
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.2.0'
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.2.0'
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.2.0'
}

La variabilité

build.gradle


def junitVersion = '5.2.0'

dependencies {
    // JUnit
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: junitVersion
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: junitVersion
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: junitVersion
}

En dehors de la propriété

Puisqu'il est possible que Gradle souffre du nom de propriété que Gradle utilise déjà, nous avons décidé de gérer la clé de la propriété faite à la main dans le cas supérieur du serpent. En dehors de cela, c'est environ la moitié et la moitié avec la gestion des minuscules séparées par des points. Je pensais que si je le mettais dans le boîtier supérieur du serpent, il ne chevaucherait pas au moins celui à l'intérieur de Gradle, alors je l'ai fait.

gradle.properties


LIBRARY_VERSION_JUNIT=5.2.0

build.gradle


def junitVersion = (String) project.LIBRARY_VERSION_JUNIT

dependencies {
    // JUnit
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: junitVersion
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: junitVersion
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: junitVersion
}

Gérer la cible avec un tableau en sortant de la propriété

gradle.properties


LIBRARY_VERSION_JUNIT=5.2.0

build.gradle


def libraryVersions = [
        junit: (String) project.LIBRARY_VERSION_JUNIT,
]

dependencies {
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: libraryVersions.junit
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: libraryVersions.junit
    testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: libraryVersions.junit
}

L'avantage est que libraryVersions. peut être utilisé pour le stockage source, et par regroupement, il peut être traité comme une liste des packages disponibles. Lors de l'ajout d'un package, c'est gênant car il est nécessaire d'écrire respectivement des propriétés et des tableaux, mais lors de la mise à jour uniquement de la version, il est seulement nécessaire de modifier les propriétés, donc le problème devrait être réduit ultérieurement.

Recommended Posts

Meilleures pratiques de gestion des versions de package dépendant de Gradle
# Java: vol1: [java · Bonnes pratiques de gestion des versions JDK]
[Gestion des versions des rails] Rétrogradation de la version des rails