Пропустить задачу при выполнении другой задачи



Я добавил задачу в свой проект gradle:



task deploy() {
dependsOn "build"
// excludeTask "test" <-- something like this

doFirst {
// ...
}
}


Теперь задача build всегда выполняется перед задачей deploy. Это хорошо, потому что задача сборки включает в себя много шагов. Теперь я хочу явно отключить одну из этих включенных задач.

Обычно я отключаю его из командной строки с помощью



gradle deploy -x test


Как я могу программно исключить задачу test?

540   2  

2 ответов:

Вам нужно настроить график задач, а не саму задачу deploy. Вот фрагмент кода, который вам нужен:

gradle.taskGraph.whenReady { graph ->
    if (graph.hasTask(deploy)) {
        test.enabled = false
    }
}

Я не знаю, что делает ваша задача развертывания, но она, вероятно, просто не должна зависеть от задачи сборки. Задача "построить" - это очень крупнозернистая задача жизненного цикла, которая включает в себя тонны вещей, которые вам, вероятно, не нужны.

Вместо этого он должен правильно определить свои входные данные (вероятно, артефакты, которые вы хотите развернуть), а затем Gradle будет выполнять только необходимые задачи для построения этих входных данных. Тогда вам больше не нужны никакие исключения.

Comments

    Ничего не найдено.