编写可以从命令行自定义的Gradle任务的最佳方法是什么?

时间:2011-09-23 06:14:32

标签: gradle

我想为我的属性提供默认值,但允许以相对简单的方式从命令行覆盖它们。 我正在使用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
  • 我知道有一个复制任务构建到Gradle中 - 我问的问题是“如何编写可从命令行自定义的构建脚本”。
  • 我尝试了“-P”命令行选项 - 似乎没有做我想要的。
  • 我希望能够从命令行,属性文件或环境变量中执行此操作会不方便。

修改 Doh,发帖后10秒 - 这似乎很明显。

所以,这个工作正常,对我来说已经足够好了(除非有更好的方法吗?)

fromProp = System.getProperty('fromProp', 'defaultFromProp')

0 个答案:

没有答案