2012-04-06 8 views

risposta

23

Quando si recuperano tutte le dipendenze da repository remoti, il repository locale diventa nient'altro che una cache.

Come tutti i cache, il repository locale Maven può occasionalmente diventare "sporco". In un atto riconosciuto di paranoia e overkill, pianifico un cron job periodico per eliminare i repository locali sui miei computer di compilazione. Ciò impone una risincronizzazione con il mio repository Nexus Maven.

+0

Buone spiegazioni e grazie per l'ulteriore suggerimento sulla risincronizzazione forzata. – twigmac

+0

Perché non usare semplicemente mvn -U (aggiornamento) per forzare un controllo per l'aggiornamento? – imagineerThat

+0

@imagineerThat Certo, ma un reset della cache assicura che la compilazione sia completamente pulita. Non costa molto quando le dipendenze sono anche memorizzate nella cache localmente nel repository Maven. –

13

Se si dispone di accesso a tutti gli artefatti necessari tramite repository remoti, è sempre possibile rimuovere il repository Maven locale. Tutti gli artefatti necessari per la build successiva, inclusi anche i plug-in di base Maven (come il compilatore) verranno recuperati dai repository remoti. Questo è tutto.

+1

Grazie per la risposta. Era quello che dovevo sapere! – twigmac

2

Ciò che si potrebbe fare è aggiungere una voce cron per eliminare regolarmente i file nel repository locale per un determinato periodo, ad esempio 90 giorni.

find ~/.m2/ -type f -atime +90 -delete && \ 
    find ~/.m2/ -type d -empty -delete 

Ciò mantiene le dimensioni della cache solo per gli artefatti che hai utilizzato di recente.

Problemi correlati