我想为我的属性提供默认值,但允许以相对简单的方式从命令行覆盖它们。 我正在使用Gradle 1.0里程碑3。
这就是我所拥有的,它的工作方式与我想要的方式非常相似,但它非常冗长。它似乎并不像Gradle-ish - 与我正在做的实际工作相反,其中150多行Java代码已经压缩到大约2行gradle脚本。
task sbtCopyTask {
fromProp = "defaultCopyFrom"
toProp = "defaultCopyTo"
overrideFromProp = System.getProperty('fromSysProp')
if( overrideFromProp != null && !overrideFromProp.trim().empty ){
fromProp = overrideFromProp
}
doLast {
println "copying ${fromProp} to ${toProp}"
}
}
执行
$GRADLE_HOME/bin/gradle sbtCopyTask
结果:
copying defaultCopyFrom to defaultCopyTo
并执行
$GRADLE_HOME/bin/gradle sbtCopyTask -DfromSysProp="wibble"
结果:
copying wibble to defaultCopyTo
修改 Doh,发帖后10秒 - 这似乎很明显。
所以,这个工作正常,对我来说已经足够好了(除非有更好的方法吗?)
fromProp = System.getProperty('fromProp', 'defaultFromProp')