web-dev-qa-db-fra.com

Voulez-vous spécifier le nom du jar et la version à la fois dans build.gradle

Je souhaite spécifier le nom et la version du fichier jar dans build.gradle. Mon build.gradle ressemble donc à celui ci-dessous.

apply plugin: 'Java'

version = "1.00.00"

 dependencies { 
     compile files('../../lib/abc.jar') 
} 

jar{
    manifest{
        attributes ("Fw-Version" : "2.50.00", "${parent.manifestSectionName}")

    }
    archiveName 'abc.jar'
}

Alors quand je fais 

gradle clean build , Je m'attendais à ce que le nom du fichier jar généré soit abc-1.00.00.jar.

Mais ce n'est pas le cas, le nom du fichier de sortie devient uniquement abc.jar et ignore simplement la version. Je veux spécifier à la fois le nom du pot et sa version, alors comment puis-je y parvenir?

18
amuser

archiveName 'abc.jar' dans votre configuration jar force le nom à être 'abc.jar'. Le format par défaut pour le nom du fichier JAR est ${baseName}-${appendix}-${version}-${classifier}.${extension}, où baseName est le nom de votre projet et version est la version du projet. Si vous supprimez la ligne archiveName dans votre configuration, vous aurez le format que vous recherchez. Si vous souhaitez que le nom de l'archive soit différent du nom du projet, définissez plutôt la variable baseName, par exemple.

jar {
    manifest{
        attributes ("Fw-Version" : "2.50.00", "${parent.manifestSectionName}")
    }
    baseName 'abc'
}

Voir https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html#org.gradle.api.tasks.bundling.Jar:archiveName pour plus d'informations sur configuration de la tâche jar.

28
andyberry88

Si vous souhaitez renommer le fichier JAR, le fichier JAR source et le fichier JAR javadoc avec un seul paramètre tout en incluant le classificateur et la version, définissez archiveBaseName au niveau supérieur.

0
RMorrisey