Android gradle build: how to set global variables

The answer from Guy is excellent. I just want to add the practical code.

Example:

Put something like this in the Project build.gradle:

project.ext {
    minSdkVersion = 21
    targetSdkVersion = 23
}

And put something like this in the Module build.gradle to access it:

    defaultConfig {
        minSdkVersion.apiLevel project.minSdkVersion
        targetSdkVersion.apiLevel project.targetSdkVersion
    }

To set a global variable

project.ext.set("variableName", value)

To access it from anywhere in the project:

project.variableName

For instance:

project.ext.set("newVersionName", versionString)

and then...

println project.newVersionName

For more information see: http://www.gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html

EDIT: As commented by Dmitry, In new versions you can use the following shorthand:

project.ext.variableName = value