Perché maven 2 prova a scaricare dipendenze che ho già?
Domanda
All'avvio di " mvn install " comando, maven a volte cerca di scaricare dipendenze che ha già scaricato. Questo è previsto per SNAPSHOT ma perché Maven lo fa per gli altri JAR?
So di poter evitare quel comportamento di " -o " bandiera ma mi chiedo solo quale sia la causa.
Soluzione
Cercherei dipendenze che non hanno un numero di versione specificato. Maven controllerà periodicamente per assicurarsi che abbia la versione più aggiornata di questi artefatti.
Altri suggerimenti
Questo probabilmente non è quello che stai vedendo, ma in passato ho dovuto installare manualmente artefatti nel mio repository locale e se dimentichi di includere l'opzione -Dgenerate.pom = true non ci sarà pom nella repo per quel manufatto e Maven andrà in centrale (e in qualsiasi altro repository remoto che hai configurato) per provare a scaricare quel pom su ogni build.
Mentre siamo sull'argomento, ho riscontrato un grosso bug in Maven 2.0.x. In modalità offline, Maven tenterà comunque di scaricare l'ultima istantanea e quando non riesce a trovare il repository delle istantanee, la compilazione non riesce. Immagina l'ilarità che ne consegue quando questo accade sul posto con un cliente e hai solo bisogno di fare una piccola modifica (ma sto divagando).
Ecco il bug: http://jira.codehaus.org/browse/MNG-2433 ecco una soluzione alternativa: http: // mail -archives.apache.org/mod_mbox/maven-users/200601.mbox/%3C117228810601130559l7e79a5e2k@mail.gmail.com%3E
La bandiera -o non funzionava ancora per me, ma questo ha funzionato:
find ~/.m2/repository -name '_maven*' | xargs rm
find ~/.m2/repository -name '*lastUpdated' | xargs rm
Che eliminerà tutti i file .lastUpdated e _maven.repositories nel repository locale. Ho riscontrato questo problema perché disponiamo di un repository Nexus aziendale irraggiungibile e avevo bisogno di lavorare. Anche l'utilizzo dell'integrazione Maven di Eclipse potrebbe aver contribuito a questo.