Gradle Goodness: Get Property Value With findProperty
Gradle 2.13 added a new method to get a property value: findProperty
.
This method will return a property value if the property exists or null
if the property cannot be found.
Gradle also has the property
method to return a property value, but this method will throw an exception if the property is missing.
With the new findProperty
method and the Groovy elvis operator (?:
) we can try to get a property value and if not found return a default value.
In the following example we have a task that tries to print the value of the properties sampleOld
and sampleNew
.
We use the findProperty
for sampleNew
and the property
method for sampleOld
:
// File: build.gradle
task resolveProperties << {
println "sampleOld -> ${project.hasProperty('sampleOld') ? project.property('sampleOld') : 'default value for sampleOld'}"
println "sampleNew -> ${project.findProperty('sampleNew') ?: 'default value for sampleNew'}"
}
First run the task and not set the project properties sampleOld
and sampleNew
:
$ gradle -q resolveProperties
sampleOld -> default value for sampleOld
sampleNew -> default value for sampleNew
$
Next we use the -P
command line option to set a value for the properties:
$ gradle -q -PsampleOld="Value sampleOld" -PsampleNew="Value sampleNew" resolveProperties
sampleOld -> Value sampleOld
sampleNew -> Value sampleNew
$
Written with Gradle 2.13.