web-dev-qa-db-fra.com

Comment télécharger des pots de Maven Central sans écrire de pom.xml

Je voudrais quelque chose comme ce qui suit.

Je veux juste un utilitaire capable de télécharger des jars et leurs dépendances à partir du référentiel Maven sans imposer de contraintes à la construction de mon projet.

Je voudrais quelque chose comme ça:

download-jar --dest=lib/ 'commons-io:commons-io:jar:1.4'

Il devrait être capable de télécharger aussi les dépendances.

Mettre à jour:

Je ne saurais pas sur un pom.xml devrait être structuré.

La seule tâche qui me reste à accomplir est le téléchargement des pots. J'aimerais disposer d'un outil capable de réaliser cette tâche qui ne me dérange pas avec des informations superbes.

Il y a quelque chose comme ça?

33
Andrea Francia

Si vous souhaitez télécharger des dépendances maven dans votre répertoire lib, utilisez le plugin dependency avec la fonction copy-dependencies.

mvn -DoutputDirectory=./lib -DincludeArtifactIds=commons-logging,commons-io dependency:copy-dependencies 

Sans la partie -DincludeArtifactIds, vous téléchargerez toutes les dépendances.

Si vous souhaitez télécharger un artefact sans projet spécifique *, voir ci-dessous **:

mvn -DgroupId=commons-io -DartifactId=commons-io -Dversion=1.4 dependency:get

Ressources :

Sur le même sujet:

Commentaires intéressants:

  • * @ Pascal Thivent:

    Pas besoin de configurer un POM, pas besoin de développer votre propre outil, utilisez mvn dependency: get. C'est la bonne réponse à cette question.

49
Colin Hebert

J'ai également dû spécifier -DrepoUrl, après avoir reçu le message d'erreur:

Failed to execute goal org.Apache.maven.plugins:maven-dependency-plugin:2.1:get 
  (default-cli) on project standalone-pom: The parameters 'repositoryUrl' 
  for goal org.Apache.maven.plugins:maven-dependency-plugin:2.1:get are 
  missing or invalid -> [Help 1]

Alors voici la commande que j'ai utilisée:

mvn -DgroupId=edu.umd -DartifactId=cloud9 -Dversion=1.3.5 \
  -DrepoUrl="http://repo1.maven.org/maven2" dependency:get

De plus, -Ddest=~ n'a pas fonctionné. Il a toujours insisté pour installer le fichier jar à ~/.m2/repository.

16
chbrown

Maven3 utilise le plugin de dépendance v2.1 par défaut:

$ mvn dependency:get -DrepoUrl=http://download.Java.net/maven/2/ \
   -DgroupId=commons-io -DartifactId=commons-io -Dversion=1.4

Avec Maven2 est encore nécessaire d’écrire le nom canonique:

$ mvn2 org.Apache.maven.plugins:maven-dependency-plugin:2.1:get \
   -DrepoUrl=http://download.Java.net/maven/2/ \
   -DgroupId=commons-io -DartifactId=commons-io -Dversion=1.4

Utilisez le paramètre artifact pour définir le nom de l'artefact sous la forme group: artefact: version

$ mvn dependency:get -DrepoUrl=http://download.Java.net/maven/2/ \
   -Dartifact=commons-io:commons-io:1.4

Utilisez LATEST pour télécharger la dernière version de l'artefact:

$ mvn dependency:get -DrepoUrl=http://download.Java.net/maven/2/ \
   -Dartifact=commons-io:commons-io:LATEST
5
Diego Pino

Vous devriez jeter un oeil au plugin maven dependency , peut-être ... et surtout à son go-offline mojo

1
Riduidel

Regardez Ivy . Il permet la résolution de dépendance à partir de référentiels maven sans la complexité excessive de maven lui-même.

0
Maxim Veksler