2015-01-06 16 views
5

Il comando mvn -U forzando tutte le dipendenze da per l'aggiornamento dal repository remoto. È possibile forzare tale aggiornamento per una selezione specifica delle dipendenze, mediante selezione esplicita/con qualche logica?Maven forza l'aggiornamento solo per dipendenze specifiche (mvn -U per dipendenze selezionate)

Il ragionamento

Non voglio forzare il controllo tutte le dipendenze che abbiamo perché come hogiht in termini di tempo che è. Tutto ciò di cui ho bisogno è di verificarne alcuni o persino specificare solo una dipendenza. Quindi, tale soluzione è altamente desiderata.

+0

non utilizzando l'opzione -U. Il plugin maven-dependency ha un obiettivo "rivoluzione": http://maven.apache.org/plugins/maven-dependency-plugin/resolve-mojo.html - potrebbe essere possibile utilizzare una combinazione di escludi e includeArtifactIds per fare questo? L'altra opzione sarebbe quella di eliminare i file artefatto e meta-dati dal repository locale. Questo dovrebbe costringere il Maven a risolvere nuovamente quell'arte in quanto non ci sono più informazioni disponibili. – wemu

+0

È un'altra domanda per la quale non so la risposta. Ho cercato di capire come è possibile ma non l'ho scoperto. Circa la cancellazione dei dati, questo è quello che sto facendo ora e cosa fermarsi a farlo. Mi sento troppo "manuale" per me. – Stas

+1

Vuoi aggiornare automaticamente il tuo file pom in qualche modo per selezionare una particolare versione più recente di una dipendenza? Corretta? – khmarbaise

risposta

3

Ci sono due plugin Maven che potrebbero aiutarti.

La prima, la dipendenza , sarà semplicemente scaricare la versione data di una dipendenza: mvn dependency:get -Dartifact=groupId:artifactId:version

Il secondo, versioni, offre alcuni comportamenti che si può anche trovare utili.

Eseguendo mvn versions:use-latest-releases -Dincludes=groupId:artifactId il pom del progetto verrà aggiornato con l'ultima versione della dipendenza specificata dal flag "-Dincludes". Potresti quindi eseguire il primo comando per scaricare la versione ora referenziata dal tuo pom.

Entrambi questi comportamenti possono essere fortemente personalizzati e automatizzati per fare cose davvero grandiose. Per ottenere ulteriori informazioni su un obiettivo di plugin, eseguire: mvn plugin:help -Ddetail=true -Dgoal=goal

Esempio: mvn versions:help -Ddetail=true -Dgoal=use-latest-releases

Per ulteriori informazioni: versions, dependency, e plugins

+1

Bello, sembra 'dependency: get -Dartifact = groupId: artifactId: version' è esattamente ciò di cui avevo bisogno. – Stas

Problemi correlati