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?
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:
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.
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
.
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
Vous devriez jeter un oeil au plugin maven dependency , peut-être ... et surtout à son go-offline mojo
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.