【发布时间】:2018-09-04 18:05:34
【问题描述】:
我正在编写一个接受命令行选项的自定义 Gradle 任务。该部分按预期工作。导致我出现问题的是调用依赖任务,命令行选项被拒绝,因为它与依赖任务无关。这是一个演示该问题的示例:
class CustomTask extends DefaultTask {
@Option(option = "stuff", description = "Custom task stuff")
String stuff
@TaskAction
void action() {
if (this.stuff?.trim()) {
println this.stuff
}
else {
throw new InvalidUserDataException("No stuff!")
}
}
}
task custom(type: CustomTask)
task depends(dependsOn: 'custom')
这里是路径:
-
gradle custom正确抛出异常 -
gradle custom --stuff=mystuff在任务运行时发出mystuff。 -
gradle depends正确地抛出了同样的异常 -
gradle depends --stuff=mystuff以Unknown command-line option '--stuff'失败
如何在调用depends 任务时让命令行选项--stuff 传递给custom 任务?
【问题讨论】:
-
不幸的是,这是选项docs.gradle.org/current/userguide/custom_tasks.html#limitations的记录限制之一
-
你是对的!但这完全是愚蠢的。如果您将其发布为答案,我会很乐意接受。
-
“完全白痴”有点苛刻,但我同意它可能会更好。您可以改用构建属性,并使用
-Pstuff=something传递它们
标签: gradle groovy build.gradle