I am using the below piece of code to copy and filter the properties from the properties file and it is working fine.There are one variable which is not static and I need to pass as a paramter so it could work on correct file.I am using -Penv=test or -Penv=at but I am getting the error.
task createLocalProp(type:Copy) << {
from "templates/local.properties.template"
into ("$buildDir/properties")
def myProps = new Properties()
file("Properties/${env}/local_${env}.properties").withInputStream{
myProps.load(it);
}
filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: myProps)
}
C:\GRADLE_WORK\XXXX-GRADLE>gradle -b build_localprop.gradle createLocalProp -Pen
v=test
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\GRADLE_WORK\XXX-GRADLE\build_localprop.gradle' line: 37
* What went wrong:
Could not compile build file 'C:\GRADLE_WORK\XXXX-GRADLE\build_localprop.gradle'
.
> startup failed:
build file 'C:\GRADLE_WORK\XXX-GRADLE\build_localprop.gradle': 37: expecting
EOF, found '<<' @ line 37, column 33.
task createLocalProp(type:Copy) << {
^
1 error
I'm not sure right now why the compiler error happens, but you should not configure the task in execution phase, but in configuration phase. <<
syntax is a shortcut for doLast
and thus even if it would compile it would probably not work as expected. Remove the <<
and probably everything is ok.