Gradle依赖任务不会将命令行选项传递给父任务

问题描述 投票:0回答:1

我正在编写一个自定义的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=mystuffUnknown command-line option '--stuff'失败

在调用--stuff任务时,如何让命令行选项custom传递给depends任务?

gradle groovy build.gradle
1个回答
2
投票

不幸的是,这是选项https://docs.gradle.org/current/userguide/custom_tasks.html#limitations的记录限制之一

您可以使用构建属性,并使用-Pstuff=something传递它们

© www.soinside.com 2019 - 2024. All rights reserved.