Я пишу пользовательскую задачу 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
?