web-dev-qa-db-fra.com

Comment télécharger un artefact Maven sur la ligne de commande sans utiliser dépendance: get ou maven-download-plugin?

J'aimerais télécharger un artefact et ses dépendances en ligne de commande. C'est à dire.

mvn [some plugin]:[goal] -DartifactId=[artifactId] -DgroupId=[groupId] -Dversion=[version]

J'ai essayé mvn dependency: get mais cela semble nécessiter une liste de référentiels distants. Je veux que MVN utilise ce qui est déjà spécifié dans settings.xml

J'ai aussi essayé le maven-download-plugin mais cela ne semble pas fonctionner correctement (il a essayé de télécharger xerces-impl comme dépendance transitive de ant et n'a pas réussi à le résoudre. dépendances de mon artefact).

Votre aide serait appréciée.

26
Chris Beach

Essayez d’utiliser la dernière version de dependency: get, ça marche pour moi

mvn org.Apache.maven.plugins:maven-dependency-plugin:2.4:get -DartifactId=[artifactId] -DgroupId=[groupId] -Dversion=[version]

travaille pour moi

22
Guy

L'objectif copy est plus approprié ici et vous permet également de spécifier un répertoire de sortie (obsolète dans l'objectif get):

mvn org.Apache.maven.plugins:maven-dependency-plugin:2.8:copy -Dartifact=groupId:artifactId:version[:packaging][:classifier] -DoutputDirectory=[target] -Dmdep.useBaseVersion=true

mdep.useBaseVersion=true supprimera les horodatages des versions d'instantané.

33
Gili

Exemple pour télécharger la version 6.9.4 de TestNG sur votre répertoire ~/.m2/(utilisez maven-dependency-plugin: get): 

mvn org.Apache.maven.plugins:maven-dependency-plugin:RELEASE:get \
-Dartifact=org.testng:testng:6.9.4:jar

Exemple pour télécharger la version 4.11 de JUnit dans votre répertoire de travail actuel (utilise maven-dependency-plugin: copy):

mvn org.Apache.maven.plugins:maven-dependency-plugin:RELEASE:copy \
-Dartifact=junit:junit:4.11:jar
3
RCross

La solution la plus simple serait de créer un simple pom avec les dépendances appropriées et de faire le paquet propre à MVN sur ce mini projet.

0
khmarbaise