Пропустить задачу при выполнении другой задачи
Я добавил задачу в свой проект gradle:
task deploy() {
dependsOn "build"
// excludeTask "test" <-- something like this
doFirst {
// ...
}
}
Теперь задача
build всегда выполняется перед задачей deploy. Это хорошо, потому что задача сборки включает в себя много шагов. Теперь я хочу явно отключить одну из этих включенных задач.Обычно я отключаю его из командной строки с помощью
gradle deploy -x test
Как я могу программно исключить задачу test?
2 ответов:
Вам нужно настроить график задач, а не саму задачу
deploy. Вот фрагмент кода, который вам нужен:gradle.taskGraph.whenReady { graph -> if (graph.hasTask(deploy)) { test.enabled = false } }
Я не знаю, что делает ваша задача развертывания, но она, вероятно, просто не должна зависеть от задачи сборки. Задача "построить" - это очень крупнозернистая задача жизненного цикла, которая включает в себя тонны вещей, которые вам, вероятно, не нужны.
Вместо этого он должен правильно определить свои входные данные (вероятно, артефакты, которые вы хотите развернуть), а затем Gradle будет выполнять только необходимые задачи для построения этих входных данных. Тогда вам больше не нужны никакие исключения.
Comments