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

标签 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')

这是路径:
  • gradle custom正确引发异常
  • 任务运行时,
  • gradle custom --stuff=mystuff发出mystuff
  • gradle depends正确抛出相同的异常
  • gradle depends --stuff=mystuff失败,显示Unknown command-line option '--stuff'

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

    最佳答案

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

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

    关于gradle - 与Gradle相关的任务不会将命令行选项传递给父任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52171801/

    相关文章:

    java - 查看 gradle 中单个配置的依赖树(使用 `dependencies` 任务)

    groovy - 我可以计算Elasticsearch中_id字段的基数吗?

    java - 构建android项目时出现intellij想法错误-groovy.lang.MissingMethodException : No signature of method:

    grails - Gradle找不到插件

    java - Gradles `jar` 是一种方法吗?

    build - 每个开发人员的Gradle “private”配置

    gradle - 有没有办法在保留原始条件的同时添加自定义最新条件?

    java - 将多项目gradle构建部署为2个独立的应用程序(一个是play应用程序)

    Elasticsearch:如何在计算字段上搜索

    java - 从 Groovy 中的 Iterable<Map.Entry> 创建 map