Gradle 依赖另一个具有参数值的任务

Gradle 依赖另一个具有参数值的任务,gradle,Gradle,我有一个插件的任务,我在命令行上调用它,如下所示: $ gradle myTask -PsomeArg=<value> $ gradle otherTask task otherTask (dependsOn: 'myTask', someArg: 'value') {...} 我假设我的任务应该是这样的: $ gradle myTask -PsomeArg=<value> $ gradle otherTask task otherTask (dependsOn

我有一个插件的任务,我在命令行上调用它,如下所示:

$ gradle myTask -PsomeArg=<value>
$ gradle otherTask
task otherTask (dependsOn: 'myTask', someArg: 'value') {...}
我假设我的任务应该是这样的:

$ gradle myTask -PsomeArg=<value>
$ gradle otherTask
task otherTask (dependsOn: 'myTask', someArg: 'value') {...}

您可以定义一个任务,当此值未作为命令行参数提供时,该任务将为项目属性
someArg
设置默认值:

task otherTask (){
    finalizedBy myTask
    doFirst{
        if (!project.hasProperty("someArg")) {
            project.ext.set("someArg", "defaultValue")
        }
    }
}
请注意,您需要在此处使用
finalizedBy
依赖项类型:如果您在myTask上使用
otherTask.dependsOn,将首先执行task
myTask
(因此属性
someArg
的默认值尚未设置)

执行结果:

./gradlew myTask -PsomeArg=myValue
  > Task :myTask
    executing task pluginTask with arg: myValue

./gradlew otherTask -PsomeArg=myValue
  > Task :myTask
    executing task pluginTask with arg: myValue

./gradlew otherTask
  > Task :myTask
    executing task pluginTask with arg: defaultValue