I want to write a gradle build script, which works in different environments (development, live). In each environment I have to load different property sets (target directories,
I had the same problem, but I use spring and configured it to read properties from classpath:application.properties
In this case you can add this to gradle.build with java plugin
if (project.hasProperty('env')) {
println "Target environment: $env"
sourceSets.main.resources.srcDir "src/main/environment/$env"
}
this for different folders based on environment
So for adding resources based on environment 'dev' you should have 'src/main/environment/dev' folder (with properties file), and invoke gradle: gradle myTask -Penv=dev
Also have a look at gradle's equivalent of maven's profiles.
You may want to check out the Gradle Properties Plugin.
Include plugin:
plugins {
id 'net.saliman.properties' version '1.4.2'
}
Create property files:
gradle-dev.properties
or
gradle-prod.properties
Call gradle:
gradle myTask -PenvironmentName=dev
gradle myTask -PenvironmentName=prod