与Gradle相关的任务不会将命令行选项传递给父任务

时间:2018-09-04 18:05:35

标签: gradle groovy build.gradle

我正在编写一个自定义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')

以下是路径:

  1. gradle custom正确引发异常
  2. gradle custom --stuff=mystuff在任务运行时发出mystuff
  3. gradle depends正确引发相同的异常
  4. gradle depends --stuff=mystuff失败,Unknown command-line option '--stuff'

调用--stuff任务时如何使命令行选项custom传递到depends任务?

1 个答案:

答案 0 :(得分:2)

不幸的是,这是选项https://docs.gradle.org/current/userguide/custom_tasks.html#limitations

的已记录限制之一。

您可以改用构建属性,然后将其传递给-Pstuff=something

相关问题