Order of precedence for defining gradle properties

The order of evaluation follows the common strategy of having user-specific values override project-specific ones, and invocation-specific values override user-specific ones. If you need more control, you can provide an ‘~/init.gradle’ that registers an appropriate callback. For example, ‘gradle.allprojects { … }’ should kick in before any configuration done in ‘build.gradle’, and possibly also before a project-level ‘gradle.properties’.

In general, it seems more desirable to have users declare their differences from the project configuration, rather than the other way around.