Как определяется порядок метода doFirst в скрипте сборки gradle?У меня есть следующий пример сценария, который содержит два метода doFirst.Я понимаю, что они аддитивны, поскольку они оба выполняются, но порядок, в котором это происходит, выглядит задом наперед:
task initialize
task depTask(dependsOn: initialize)
initialize {
doFirst {
println 'processing doFirst in initialization (configuration)'
}
println 'processing initialize (configuration)'
}
depTask {
println 'processing depTask (configuration)'
}
depTask << {
println 'executing depTask (execution)'
}
initialize << {
println 'executing initialize (execution)'
}
initialize.doFirst {
println 'executing doFirst on initialize (execution)'
}
Вывод этого сценария:
processing initialize (configuration)
processing depTask (configuration)
executing doFirst on initialize (execution)
processing doFirst in initialization (configuration)
executing initialize (execution)
executing depTask (execution)
Первый "doFirst"функция определена в задаче инициализации.Второй определяется за пределами блока конфигурации.Почему первый экземпляр не выполняется перед вторым?Порядок исполнения выглядит задом наперед.Я ожидал, что первый, внутри определения конфигурации, будет выполнен первым.Буду признателен за любую помощь в понимании этого.