My recommendation is to keep most, if not all, information in Gradle build
scripts. In most cases, I see little value in moving information into a
properties file. You lose a lot of flexibility, but what exactly do you
gain? You might just as well move the information into a separate .gradle
file, a mechanism that is supported out-of-the-box. To give an example, for
dependency management I often introduce a dependencies.gradle with content
like this:

ext.libs = [
  junit: "junit:junit:4.10",
  spring_core: "org.springframework:spring-core:3.1.0.RELEASE",
  ...
]

I then apply this script to the main build script with:

apply from: "properties.gradle"

And use it like this:

dependencies {
  compile libs.spring_core
  testCompile libs.junit
}

Keeping dependency declarations in a build script has several advantages
over a properties file:
- No code needed for handling properties files
- No pollution of global namespace (all properties are prefixed with "libs")
- Full Groovy/Gradle language at your disposal

The latter means that I can use all supported notations for declaring
dependencies. For example:

def springVersion = "3.1.0.RELEASE"

ext.libs = [
  junit: dependencies.create("junit:junit:4.10") {
    exclude module: "hamcrest-core"
  },
  spring: [
    "org.springframework:spring-core:$springVersion", 
    "org.springframework:spring-jdbc:$springVersion"
  ]
]

These are just a few examples for things that you cannot do with properties
files.

--
Peter Niederwieser
Principal Engineer, Gradleware 
http://gradleware.com
Creator, Spock Framework 
http://spockframework.org
Twitter: @pniederw

--
View this message in context: 
http://gradle.1045684.n5.nabble.com/Best-Practices-for-storing-common-configuration-values-tp5709823p5709828.html
Sent from the gradle-user mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to