Значение по умолчанию для $PROPERTY в Gradle

Как я могу указать значение по умолчанию для этого простого build.gradle script:

println "Hello $build_version" 

Так что я не получаю ошибку:

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

Я пробовал некоторые из операторов, проверяя нули и т.д., но я думаю, что просто ссылка на свойство заставляет его терпеть неудачу. Я мог бы исправить это, всегда предоставляя свойство, но это не идеальное.

gradle -Pbuild_version=World

Ответы

Ответ 1

if (!project.hasProperty("build_version")) {
    ext.build_version = "1.0"
}

Ответ 2

Это проверяет, существует ли свойство и присваивает значение по умолчанию, если нет:

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

Ответ 3

Это сработало для меня:

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")
}

Ответ 4

Я добавляю это в свой build.gradle:

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

затем используйте, если необходимо propValue('build_version', 'nokey').

Ответ 5

Вы пробовали это?

println "Hello ${project.getProperty('build_version', 'default_string_value')}"