У меня есть три задачи (это код kotlin внутри плагина):
project.task<Task>("checkNeeded") {
doLast {
if (someTest()) {
listOf("SomeCopy", "SomeAction")
.map { project.tasks[it] as AbstractTask }
.forEach { it.isEnabled = false }
}
}
}
project.task<Copy>("SomeCopy") {
dependsOn("checkNeeded")
from(wherever)
into(whatever)
}
project.task<Task>("SomeAction") {
dependsOn("checkNeeded")
doLast {
/* something magical */
}
}
Итак, обе задачи SomeCopy
и someAction
зависят от checkNeeded
.Роль checkNeeded
состоит в том, чтобы отключить эти две задачи, если они обнаружат, что они не нужны.
Однако происходит сбой со следующим исключением: Cannot call Task.setEnabled(boolean) on task ':SomeCopy' after task has started execution
.
Итак, как можноУ меня есть задача, которая гарантированно запускается раньше других задач, которые могут отключить другие задачи, если они не нужны?