Gradle génère automatiquement le numéro de version de git et l'utilise en Java

Chose que tu veux faire

Site référencé

Attribuer automatiquement les numéros de version avec Gradle ~ Collaboration avec git-describe grgit-gradle BuildConfig Gradle-plugin for Java and Groovy projects

la mise en oeuvre

build.gradle


plugins {
    id 'idea'
    id 'application'
    id 'org.ajoberstar.grgit' version '3.1.1'
    id 'de.fuerstenau.buildconfig' version '1.1.8'
}

group 'com.example'
version = {
    def tags = grgit.tag.list().collect { it.getName() }
    def versionStr
    if (tags.any { it ==~ /v\d.*/ }) {
        versionStr = grgit.describe(longDescr: false, tags: true, match: ["v[0-9]*"])
    } else {
        versionStr = grgit.head().abbreviatedId
    }
    return versionStr + (grgit.status().isClean() ? "" : "+dirty")
}()

repositories {
    mavenCentral()
}

task showVersion {
    doLast {
        println version
    }
}

mainClassName = 'Main'

Main.java


import com.example.BuildConfig;

public class Main {

    public static void main(String... args) {
        System.out.println(BuildConfig.VERSION);
    }
}

Exemple d'exécution

S'il n'y a pas de balise indiquant la version

2f9b747  //Valider le hachage

Si HEAD a une étiquette indiquant la version

v0.1

Lors de la validation supplémentaire à partir de la balise indiquant la version

v0.0-10-g3636be7

S'il y a des modifications non validées

v0.0-10-g3636be7+dirty

Recommended Posts

Gradle génère automatiquement le numéro de version de git et l'utilise en Java
Implémentez l'interface Java dans la classe JRuby et appelez-la depuis Java
Bonjour tout le monde en Java et Gradle
JSON en Java et Jackson Part ③ Incorporer JSON dans HTML et l'utiliser à partir de JavaScript
Capture et sauvegarde de l'installation de sélénium en Java
Générer OffsetDateTime à partir de Clock et LocalDateTime en Java
[Développement Android] Obtenez des images du serveur avec Java et définissez-les dans ImageView! !!
Ecrire une classe en Kotlin et l'appeler en Java
Soustraire les constantes Enum des chaînes et des valeurs en Java
JSON en Java et Jackson Partie 1 Renvoyer JSON à partir du serveur
[Kotlin] Obtenez le constructeur / la méthode Java de KFunction et appelez-le
Corrigez le code de caractère en Java et lisez à partir de l'URL
Obtenir des attributs et des valeurs à partir d'un fichier XML en Java
Java version 8 et fonctionnalités ultérieures
Utilisation de Docker depuis Java Gradle
Dans Java 10, lorsque l'éclipse gradle est terminée et que JavaSE-1.10 sort, ...
Installez le plugin memcached sur MySQL et accédez à partir de Java