Come è l'ordine del metodo doFirst determinato in uno script di build Gradle? Ho il seguente script di esempio che contiene due metodi doFirst. Ho capito che sono additivi, in quanto entrambi eseguono, ma l'ordine che si verifica ciò sembra all'indietro:Gradle doFirst() Esecuzione Order
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)'
}
L'uscita da questo script è:
processing initialize (configuration)
processing depTask (configuration)
executing doFirst on initialize (execution)
processing doFirst in initialization (configuration)
executing initialize (execution)
executing depTask (execution)
La prima funzione "doFirst" è definita nell'attività di inizializzazione. Il secondo è definito al di fuori del blocco di configurazione. Perché la prima istanza non viene eseguita prima della seconda? L'ordine di esecuzione guarda indietro. Mi sarei aspettato che il primo, all'interno della definizione di configurazione, fosse eseguito per primo. Qualsiasi aiuto per capire questo sarebbe apprezzato.
'println 'elaborazione doFirst nell'inizializzazione (configurazione)'' Non che questo avviene nella fase di configurazione. –