зависит от другой задачи со значением параметра - PullRequest
1 голос
/ 13 января 2020

У меня есть задача из плагина, которую я вызываю в командной строке следующим образом:

$ gradle myTask -PsomeArg=<value>

Я хочу определить другую задачу, которая будет делать то же самое со значением параметра по умолчанию. Я ожидаю, что смогу назвать это так:

$ gradle otherTask

Я предполагаю, что моя задача должна выглядеть примерно так:

task otherTask (dependsOn: 'myTask', someArg: 'value') {...}

1 Ответ

2 голосов
/ 13 января 2020

Вы можете определить задачу, которая установит значение по умолчанию для свойства проекта someArg, если это значение не указано в качестве параметра командной строки:

task otherTask (){
    finalizedBy myTask
    doFirst{
        if (!project.hasProperty("someArg")) {
            project.ext.set("someArg", "defaultValue")
        }
    }
}

Обратите внимание, что вам нужно использовать finalizedBy тип зависимости здесь: если вы используете otherTask.dependsOn myTask, задача 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...