Невозможно понять, почему задачи зависимостей выполняются в алфавитном порядке при использовании dependsOn
.Что меня смущает больше, так это утверждение In Gradle, the task execution order is not deterministic
на странице 84 из Gradle in Action book.
Позже автор продолжает: It’s important to understand that Gradle doesn’t guarantee the order in which the dependencies of a task are executed.
Если порядок выполнения недетерминированный , то порядок не всегда должен быть алфавитнымто есть должно быть случайным .
Если кто-нибудь сможет пролить свет на это, это было бы здорово.Посмотрел вопросы, касающиеся порядка выполнения заданий, но мой вопрос немного отличается тем, что я хотел бы знать , почему автор называет порядок выполнения недетерминированным и почему он даже продолжает говорить, что нет гарантированного порядка , когда на самом деле то, что я видел, попробовав несколько примеров, является совершенно противоположным (то есть всегда в алфавитном порядке).
РЕДАКТИРОВАТЬ 1 ЗАПУСК
Мой скрипт gradle (build.gradle):
version = '0.1-SNAPSHOT'
task first{
doLast{
println "first"
}
}
task second {
doLast{
println "second"
}
}
task fourth {
doLast{
println "fourth"
}
}
task wonder {
doLast{
println "Wonder"
}
}
task thunder {
doLast{
println "thunder"
}
}
task apple {
doLast{
println "apple"
}
}
task printVersion(dependsOn: [second, first, fourth, wonder, thunder, apple]) {
doLast{
logger.quiet "Version: $version"
}
}
task third{
doLast{
println "third"
}
}
third.dependsOn('printVersion')
Ниже приведен порядок каждый раз, когда я пытаюсь запустить скрипт:
:apple SKIPPED
:first SKIPPED
:fourth SKIPPED
:second SKIPPED
:thunder SKIPPED
:wonder SKIPPED
:printVersion SKIPPED
:third SKIPPED
РЕДАКТИРОВАТЬ 1 КОНЕЦ