Perché dovrei eseguire "gradle clean build" invece di "gradle build"? Da quanto ho capito, gradle può rilevare le modifiche alla fonte e aggiornare gli artefatti finali, se necessario. Quindi, perché dovrei ancora "pulire"?Perché eseguire 'gradle clean'?
risposta
Il clean task è definito dallo java plugin e rimuove semplicemente la cartella buildDir, pulendo quindi tutto ciò che include gli avanzi delle generazioni precedenti che non sono più rilevanti. In caso contrario, è possibile che si verifichi una build non pulita che potrebbe essere danneggiata a causa di artefatti generati da build precedenti.
Come esempio si supponga che la build contenga diversi test non riusciti e si è deciso che questi sono obsoleti, quindi è necessario rimuoverli. Senza pulire i risultati del test (utilizzando l'attività cleanTest) o completamente la build (eseguendo l'operazione clean) resterai bloccato con i risultati dei test non riusciti che causeranno il fallimento della tua build. Effetti collaterali simili possono verificarsi anche con risorse/classi rimosse dai sorgenti ma rimangono nella cartella di creazione che non è stata pulita.
grazie per aver risposto. Sono consapevole di cosa sia pulito, ma non conosco un caso specifico di quando è utile. Potete fornire un esempio del genere, per una migliore comprensione? Grazie. –
Sicuro. Supponiamo che la tua build contenga diversi test che sono falliti e hai deciso che questi sono obsoleti, quindi deve essere rimosso. Senza pulire i risultati del test (utilizzando l'attività cleanTest) o completamente la build (eseguendo l'operazione clean) resterai bloccato con i risultati dei test non riusciti che causeranno il fallimento della tua build. Effetti collaterali simili possono verificarsi anche con risorse/classi rimosse dai sorgenti ma rimangono nella cartella di creazione che non è stata pulita. –
Ha senso. Puoi modificare la tua risposta per includere questo esempio in modo che possa contrassegnarlo come corretto? –
Altri strumenti di build come buck rileveranno che alcuni test vengono rimossi e non li eseguiranno senza la necessità di eseguire un target pulito. Penso che questo sia un trabocchetto di gradle.
Questo è per lo più inaccurato, Gradle ha il monitoraggio di input e output e quasi tutte le attività possono gestire questo caso. – mkobit
Per assicurarti che gli errori che ricevi non derivino dall'indicizzazione errata per gradi. O se hai aggiunto nuove librerie che cambiano ogni dipendenza. – Tschallacka
"gradel clean build" aiuta a rimuovere tutte le dipendenze generate durante l'ultima build e ottenere nuove dipendenze dal server e creare il tuo progetto. Grazie – Naitik
@Naitik, non è vero. – Opal