2013-01-31 19 views
16

Quando si esegue mvn install su un progetto multi modulo locale, esso crea e installa le risorse di progetto nel repository locale. mvn clean sembra pulire le directory di destinazione specifiche del progetto.Come rimuovere gli artefatti dei progetti dal repository locale Maven?

Quale comando devo utilizzare con Maven per farlo disinstallare i moduli dei progetti dal repository locale? per esempio i miei progetti emettono foo-0.1.jar e bar-0.2.jar Voglio che vengano rimossi dal mio repo locale senza dover andare lì e cancellarli da solo.

+0

Beh, in genere ho solo ... cancellarli dal file system ... –

+0

ci sono 17 di loro per un singolo progetto esecuzione di uno script per eliminarli è fastidioso, quindi vorrei piuttosto Maven farlo dal momento che sa cosa c'è. – ams

+0

Se si proietta output foo-0.1.jar dal punto di vista di Maven, una release che non verrà mai eliminata dal repository locale. Quindi la prima domanda: perché ti piace eliminarli? – khmarbaise

risposta

4

È possibile eliminare gli artefatti dal repository locale, ma perché ti piace farlo? A parte che si può fare via maven-dependency-plugin:

Ciò eliminare tutti un progetto ea dipendenza manufatti

mvn dependency:purge-local-repository 

Ciò può essere influenzata da argomenti della riga di comando supplementari (vedere la documentazione) per ulteriori dettagli.

+2

Ho 'mvn installato alcuni artefatti. Dopo aver eseguito 'mvn dependency: purge-local-repository', altri progetti che dipendono da quel manufatto continuano a crescere. Da dove prendono quell'articolo se è stato rimosso dal repository locale? Dipendenza – Honza

+0

': purge-local-repository' * * non * remote l'artefatto specificato dal pom corrente. Si limitano a "ricaricare" tutte le dipendenze. – isnot2bad

2

La cosa migliore è implementare una strategia di rilascio, vale a dire finché le risorse in fase di sviluppo aggiungono la versione con SNAPSHOT. Maven quindi aggiorna automaticamente le risorse nel repository locale quando si esegue l'installazione. Una volta completato lo sviluppo, rimuovere lo SNAPSHOT e rilasciare la versione (ad esempio tramite distribuzione). Se è necessario un ulteriore sviluppo, è possibile aumentare il numero di versione e aggiungerlo nuovamente con SNAPSHOT.

+0

Questa è una strategia particolarmente negativa che impedisce di rilevare dipendenze cicliche o artefatti mancanti fino a quando non è troppo tardi. – marcv81

+0

Come mai? Mi sembra che MrsTang stia proponendo l'uso del versioning standard di Maven ... usa -SNAPSHOT nella versione durante lo sviluppo e poi rimuovilo quando è il momento di rilasciare. Anche se non sono sicuro che risolva davvero la sfida che l'utente deve affrontare quando scarica le dipendenze, non seguo il modo in cui l'utilizzo del controllo delle versioni standard impedisce di rilevare dipendenze cicliche o mancanze di elementi. – tbradt

37
mvn build-helper:remove-project-artifact 
+1

elimina solo il progetto corrente dal repository! utilizzo: navigare nel progetto ed eseguire il comando – tbraun

+1

Works man, grazie! – JRichardsz

Problemi correlati