In breve, il primo frammento è sempre sbagliato, e la seconda è sempre nel modo giusto.
Una generazione di gradino procede in tre fasi: inizializzazione, configurazione ed esecuzione. Metodi come from
e into
configurano l'attività, quindi devono essere richiamati nella fase di configurazione. Tuttavia, <<
(che è una scorciatoia per doLast
) aggiunge un'azione compito - si istruisce il compito che cosa fare se e quando Viene eseguito. In altre parole, il primo snippet configura l'attività nella fase di esecuzione e, peggio ancora, dopo, l'azione principale (copia) è stata eseguita. Quindi la configurazione non avrà alcun effetto.
Tipicamente, un'attività ha sia un tipo (che porta già lungo un'azione Operazione) o una <<
(per un'attività ad-hoc). Ci sono casi d'uso legittimi per averli entrambi (facendo un po 'di lavoro personalizzato dopo il lavoro "principale" dell'attività), ma più spesso no, è un errore in cui l'attività viene configurata troppo tardi.
In genere consiglio di utilizzare doLast
anziché <<
, perché è meno criptico e rende più facile individuare tali errori. (Una volta compresi i concetti, è ovvio che task copyFiles(type: Copy) { doLast { from ... } }
è errato.)
fonte
2013-03-26 09:12:17