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

2023-12-12

我正在编写一个自定义 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 emits mystuff当任务运行时。
  3. gradle depends正确抛出相同的异常
  4. gradle depends --stuff=mystuff失败了Unknown command-line option '--stuff'

如何设置命令行选项--stuff穿过到custom调用时的任务depends task?


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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐