web-dev-qa-db-fra.com

Valeur par défaut pour un $ PROPERTY dans Gradle

Comment puis-je spécifier une valeur par défaut pour ce script build.gradle simple:

println "Hello $build_version" 

Pour que je ne reçoive pas l'erreur:

A problem occurred evaluating root project 'hello_gradle'.
> Could not find property '$build_version' on root project 'hello_gradle'.

J'ai essayé certains des opérateurs, en vérifiant les nulls, etc., mais je pense que la simple référence à la propriété le fait échouer. Je pourrais résoudre ce problème en fournissant toujours la propriété, mais ce n'est pas idéal. 

gradle -Pbuild_version=World
22
Zero Distraction
if (!project.hasProperty("build_version")) {
    ext.build_version = "1.0"
}
29
Peter Niederwieser

Ceci vérifie si la propriété existe et attribue une valeur par défaut sinon:

def build_version=project.properties['build_version'] ?: "nokey"
15

Cela a fonctionné pour moi:

def AWS_ACCESS_KEY="nokey"
def AWS_SECRET_KEY="nokey"

if (project.hasProperty("AWS_ACCESS_KEY")) {
    AWS_ACCESS_KEY=project.get("AWS_ACCESS_KEY")
}
if (project.hasProperty("AWS_SECRET_KEY")) {
    AWS_SECRET_KEY=project.get("AWS_SECRET_KEY")
}
3
Russ

J'ajoute ceci à mon build.gradle:

String propValue(String propName, String defValue) {
    (project.hasProperty(propName) && project.getProperty(propName)) ? project.getProperty(propName) : defValue
}

puis utilisez si nécessaire propValue('build_version', 'nokey').

0
Fred Simon