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

Gradle 依赖于梯度的任务不会将命令行选项传递给父任务,gradle,groovy,build.gradle,Gradle,Groovy,Build.gradle,我正在编写一个自定义Gradle任务,它接受来自命令行的选项。那部分工作正常。导致我出现问题的是,调用依赖任务时,命令行选项被拒绝,因为它与依赖任务无关。下面是一个示例,演示了这个问题: class CustomTask extends DefaultTask { @Option(option = "stuff", description = "Custom task stuff") String stuff @TaskAction void action()

我正在编写一个自定义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 Dependes正确地抛出相同的异常 gradle dependens-stuff=mystuff失败,命令行选项未知“-stuff”
调用depends任务时,如何使命令行选项-stuff传递到自定义任务?

不幸的是,这是有文档记录的选项限制之一


您可以改为使用构建属性,并将它们与-Pstuff=something一起传入。不幸的是,这是您正确的选项的文档限制之一!但这完全是愚蠢的。如果你把这个贴出来作为答案,我很乐意接受。完全的白痴有点苛刻,但我同意这可能会更好。您可以改为使用构建属性,并使用-Pstuff=something传递它们,这正是我在您最初的评论之后切换到的内容。再次感谢!