114 votes

Une ligne de commande simple pour télécharger un artefact maven2 distant vers le dépôt local ?

J'ai une bibliothèque que je distribue en utilisant maven 2. L'utilisateur typique de cette bibliothèque n'utilise pas maven pour construire ses applications, mais il est probablement un peu familier avec maven et l'a probablement installé.

J'aimerais documenter une commande "simple" en une ligne qu'ils peuvent utiliser pour télécharger les artefacts de ma bibliothèque sur leur ordinateur local. ~/.m2/repository sans qu'ils aient à configurer un pom.xml pour le faire.

Je pensais qu'il y avait un moyen de le faire, mais je n'arrive pas à le trouver après avoir parcouru le site Web de la Commission européenne. install:install-file y dependency documentation du plugin. J'ai essayé des choses comme :

mvn install:install-file -DrepositoryId=java.net -Durl=http://download.java.net/maven/2/ -Dfile=robo-guice-0.4-20091121.174618-1.jar -DpomFile=robo-guice-0.4-20091121.174618-1.pom -DgroupId=robo-guice -DartifactId=robo-guice -Dversion=0.4-SNAPSHOT -Dpackaging=jar

mais je pense que je m'égare puisqu'il semble que le plugin d'installation soit utilisé pour copier les fichiers construits localement dans le référentiel local, plutôt que de télécharger des artefacts distants dans le référentiel local.

Voici l'artefact que je voudrais installer : http://download.java.net/maven/2/robo-guice/robo-guice/0.4-SNAPSHOT/

Est-ce possible en utilisant maven ?

161voto

Pascal Thivent Points 295221

Depuis la version 2.1 de l Plugin de dépendances Maven il existe un dépendance:obtenir à cette fin. Pour vous assurer que vous utilisez la bonne version du plugin, vous devrez utiliser le "nom pleinement qualifié" :

mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get \\
    -DrepoUrl=http://download.java.net/maven/2/ \\
    -Dartifact=robo-guice:robo-guice:0.4-SNAPSHOT

44voto

bmargulies Points 49855

Donnez-leur un pom trivial avec ces jars listés comme dépendances et des instructions pour les exécuter :

mvn dependency:go-offline

Cela va tirer les dépendances vers le dépôt local.

Une solution plus directe est dépendance:obtenir mais c'est beaucoup d'arguments à taper :

mvn dependency:get -DrepoUrl=something -Dartifact=group:artifact:version

19voto

Eric B. Points 3460

À partir de la version 2.4 de l Plugin de dépendances Maven Vous pouvez également définir une destination cible pour l'artefact en utilisant l'option -Ddest. Il doit pointer vers un nom de fichier (et non un répertoire) pour l'artefact de destination. Voir la page page des paramètres pour les paramètres supplémentaires qui peuvent être utilisés

mvn org.apache.maven.plugins:maven-dependency-plugin:2.4:get \
    -DremoteRepositories=http://download.java.net/maven/2 \
    -Dartifact=robo-guice:robo-guice:0.4-SNAPSHOT \
    -Ddest=c:\temp\robo-guice.jar

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X