web-dev-qa-db-fra.com

Comment définir project.version en passant la propriété version sur la ligne de commande gradle?

Je veux construire JAR avec une version auto-définie passée via la ligne de commande, comme:

Quand j'exécute une tâche de construction gradle comme ceci:

gradle build -Pversion=1.0

myproject-1.0.jar devrait être généré.

J'ai essayé d'ajouter la ligne ci-dessous au build.gradle , mais cela n'a pas fonctionné:

version = project.hasProperty('version') ? project['version'] : '10.0.0'
24
pat.inside

Vous ne pouvez pas remplacer les propriétés de projet existantes à partir de la ligne de commande, jetez un œil ici . Essayez donc de renommer une variable de version en quelque chose de différent de la version et définissez-la avec -P drapeau avant la commande, comme:

gradle -PprojVersion=10.2.10 build 

Et puis dans votre build.gradle

if (project.hasProperty('projVersion')) {
  project.version = project.projVersion
} else {
  project.version = '10.0.0'
}

Ou comme vous l'avez fait avec?: Operator

20
Stanislav

Définissez la propriété uniquement dans le gradle.properties fichier (c'est-à-dire le supprimer de build.gradle). Assurez-vous également que les options viennent avant la commande (comme mentionné ci-dessus).

contenu de gradle.properties:

version=1.0.12

La version peut alors être remplacée sur la ligne de commande avec:

gradle -Pversion=1.0.13 publish
45
zeroblaz3

Si vous déplacez l'entrée version vers gradle.properties fichier, vous pouvez également:

gradle clean build -Dorg.gradle.project.version=1.1
8
Opal

Si vous avez besoin d'une version par défaut autre que 'non spécifiée':

version = "${version != 'unspecified' ? version : 'your-default-version'}"

Passer la version via la ligne de commande:

gradle build -P version=1.0
6
Bian Jiaping

version = (findProperty('version') == 'unspecified') ? '0.1' : version

2
Ajax

Vous pouvez passer la version du projet sur cli avec -Pversion=... tant que vous ne le définissez pas dans build.gradle. Si vous avez besoin d'une valeur par défaut personnalisée pour lorsqu'aucune version n'est transmise sur le cli, utilisez le fichier gradle.properties comme ceci: version=...

TL; DR: Ne définissez pas la version dans le fichier build.gradle si vous souhaitez la modifier ultérieurement via cli.

1
Alex