¿Cómo se determina el orden del método doFirst en un script de construcción gradle? Tengo el siguiente script de ejemplo que contiene dos métodos doFirst. Entiendo que son aditivos, ya que ambos se ejecutan, pero el orden en que esto ocurre mira hacia atrás:Gradle doFirst() Orden de ejecución
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)'
}
La salida de este script es:
processing initialize (configuration)
processing depTask (configuration)
executing doFirst on initialize (execution)
processing doFirst in initialization (configuration)
executing initialize (execution)
executing depTask (execution)
la primera función "doFirst" se define en la tarea de inicialización. El segundo se define fuera del bloque de configuración. ¿Por qué la primera instancia no se ejecuta antes que la segunda? El orden de ejecución mira hacia atrás. Hubiera esperado que el primero, dentro de la definición de configuración, se ejecutara primero. Cualquier ayuda para entender esto sería apreciada.
'println 'processing doFirst en inicialización (configuración)' 'No creo que esto ocurra en la fase de configuración. –