Passing Configuration to a Gradle Build via Custom Environment Variables: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 40: | Line 40: | ||
gradle display | gradle display | ||
> Configure project : | > Configure project : | ||
default value | default value | ||
BUILD SUCCESSFUL in 0s | BUILD SUCCESSFUL in 0s | ||
Line 50: | Line 48: | ||
export CUSTOM_ENVIRONMENT_VARIABLE=BLAH | export CUSTOM_ENVIRONMENT_VARIABLE=BLAH | ||
gradle display | gradle display | ||
> Configure project : | > Configure project : | ||
BLAH | BLAH | ||
BUILD SUCCESSFUL in 0s | BUILD SUCCESSFUL in 0s |
Revision as of 21:26, 14 March 2019
Internal
Overview
This article describes a generic method to pass configuration to a Gradle build using custom environment variables. This method could prove useful when Gradle builds are executed in containers, as it is the case for AWS CodeBuild builds.
Playground
Procedure
The method consists in defining a project extra property that is initialized with the value of the custom environment variable, or to a default value if the environment variable is not defined. The following code sequence is added to build.gradle, in the ext closure:
ext {
projectExtPropertyInformedByEnvironmentVariable = "default value"
String s = System.getenv("CUSTOM_ENVIRONMENT_VARIABLE");
if (s != null) {
projectExtPropertyInformedByEnvironmentVariable = s;
}
}
The following task displays the property value:
ask display {
println projectExtPropertyInformedByEnvironmentVariable
}
If CUSTOM_ENVIRONMENT_VARIABLE is not set, executing the "display" task results in:
gradle display > Configure project : default value BUILD SUCCESSFUL in 0s
Setting the environment variable propagates it to the build:
export CUSTOM_ENVIRONMENT_VARIABLE=BLAH gradle display > Configure project : BLAH BUILD SUCCESSFUL in 0s