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

Pau*_*aul 4 groovy gradle 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')
Run Code Online (Sandbox Code Playgroud)

以下是路径:

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

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

tim*_*tes 5

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

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