我正在编写一个自定义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'
调用
--stuff
任务时,如何使命令行选项custom
传递给depends
任务?
最佳答案
不幸的是,这是选项https://docs.gradle.org/current/userguide/custom_tasks.html#limitations的已记录限制之一。
您可以改用构建属性,并使用-Pstuff=something
传递它们
关于gradle - 与Gradle相关的任务不会将命令行选项传递给父任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52171801/