【问题标题】:Gradle dependent task doesn't pass command line options to parent taskGradle 依赖任务不会将命令行选项传递给父任务
【发布时间】:2018-09-04 18:05:34
【问题描述】:

我正在编写一个接受命令行选项的自定义 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' 失败

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

【问题讨论】:

  • 不幸的是,这是选项docs.gradle.org/current/userguide/custom_tasks.html#limitations的记录限制之一
  • 你是对的!但这完全是愚蠢的。如果您将其发布为答案,我会很乐意接受。
  • “完全白痴”有点苛刻,但我同意它可能会更好。您可以改用构建属性,并使用-Pstuff=something 传递它们

标签: gradle groovy build.gradle


【解决方案1】:

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

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

【讨论】:

  • 这正是我在您的原始评论后切换到的。再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
  • 2013-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多