Chapter 2. From Project Import to Release

2.1 Setting Project Properties

Problem

You want to add extra properties to your project, or externalize hardcoded values.

Solution

Use the ext block for common values. To remove them from the build file, put properties in the gradle.properties file, or set them on the command line using the -P flag.

Discussion

Gradle build files support property definitions using a simple ext syntax, where in this case “ext” stands for “extra.” This makes it easy to define a variable value once and use it throughout the file.

These properties can be hardcoded into the build file if you wish. Example 2-1 is a sample from a Gradle build file from the Android Annotations project.

Example 2-1. Sample “extra” property
ext {
    def AAVersion = '4.0-SNAPSHOT' // change this to your desired version
}

dependencies {
    apt "org.androidannotations:androidannotations:$AAVersion"
    compile "org.androidannotations:androidannotations-api:$AAVersion"
}

Normal Groovy idioms apply here, meaning that the variable AAVersion is untyped but takes on a String value at assignment, and that the variable is interpolated into the two Groovy string dependencies.

The use of the def keyword here implies that this is a local variable in the current build file. Defining the variable without def (or any other type) adds the variable as an attribute of the project object, making it available in this project as well as any of its subprojects.

Note

An untyped variable in the ext block adds ...

Get Gradle Recipes for Android now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.