Расширьте существующую задачу Gradle и переопределите конфигурацию.
-
21-12-2019 - |
Вопрос
Я хотел бы определить новую задачу под названием dbStatus
который вызывает (или расширяет?) run
, и просто переопределяет args
свойство.
apply plugin: 'application'
run {
args "server", "service.yml"
}
task(dbStatus, type: run) {
args "db", "status", "service.yml
}
Это не работает, потому что "run"
не является допустимым классом задач.Есть ли быстрый способ расширить задачу и просто переопределить свойство?
ОБНОВЛЯТЬ:Разрешение
К сожалению, мне пришлось просто определить совершенно новый JavaExec
задачу и воссоздать логику, которая run
настроен на выполнение.Вот что я придумал:
task(dbStatus, type: JavaExec) {
main mainClassName
classpath sourceSets.main.runtimeClasspath
args "db", "status", "service.yml"
}
Я не думаю, что это точно то же самое, что run
, поскольку он не работает против сборки jar
Не верю, но для моих целей это работает.
Решение
Задачи не могут быть «расширены» таким образом.Вместо этого объявите другую задачу и настройте ее соответствующим образом.(Обычно настраивают несколько задач одновременно, чтобы избежать дублирования кода.)