Je peux installer un artefact par l'installer:installez le fichier, mais comment puis-je les télécharger, par exemple:
mvn download:download-file -DgroupId=.. -DartifactId=.. -Dversion=LATEST
une idée?
Je peux installer un artefact par l'installer:installez le fichier, mais comment puis-je les télécharger, par exemple:
mvn download:download-file -DgroupId=.. -DartifactId=.. -Dversion=LATEST
une idée?
Vous pouvez utiliser la dépendance maven plugin qui a une belle dependency:get
objectif depuis la version 2.1. Pas besoin d'un pom, tout se passe sur la ligne de commande.
Pour vous assurer de trouver l' dependency:get
but, il faut explicitement indiquer à maven d'utiliser la version 2.1, c'est à dire que vous devez utiliser le nom complet du plugin, y compris la version:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get \
-DrepoUrl=url \
-Dartifact=groupId:artifactId:version
Mise à JOUR: Avec les anciennes versions de Maven (avant 2.1), il est possible d'exécuter dependency:get
normalement (sans utiliser le nom complet et la version) en forçant votre copie de maven, d'utiliser une version d'un plugin.
Cela peut être fait comme suit:
1. Ajoutez la ligne suivante au sein de l' <settings>
élément de votre ~/.m2/settings.xml
le fichier:
<usePluginRegistry>true</usePluginRegistry>
2. Ajouter le fichier ~/.m2/plugin-registry.xml
avec le contenu suivant:
<?xml version="1.0" encoding="UTF-8"?>
<pluginRegistry xsi:schemaLocation="http://maven.apache.org/PLUGIN_REGISTRY/1.0.0 http://maven.apache.org/xsd/plugin-registry-1.0.0.xsd"
xmlns="http://maven.apache.org/PLUGIN_REGISTRY/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<useVersion>2.1</useVersion>
<rejectedVersions/>
</plugin>
</plugins>
</pluginRegistry>
Mais cela ne semble pas fonctionner avec maven 2.1/2.2. En fait, selon l' Introduction de l'extension de Registre, les caractéristiques de l' plugin-registry.xml
ont été redessinés (pour la portabilité) et le plugin de registre est actuellement dans un semi-état de dormance dans Maven 2. Donc, je pense que nous devons utiliser le nom long pour le moment (lors de l'utilisation du plugin sans un pom, qui est l'idée derrière le dependency:get
).
Avec la dernière version (2.8) de la Dépendance Maven Plugin, le téléchargement d'un artefact dans le Dépôt Central de Maven est aussi simple que:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=groupId:artifactId:version[:packaging[:classifier]]
où groupId:artifactId:version
, etc. sont les coordonnées Maven
Un exemple, testé avec Maven 2.0.9, Maven 2.2.1, et Maven 3.0.4:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=org.hibernate:hibernate-entitymanager:3.4.0.GA:jar:sources
(Merci à Pascal Thivent pour ses merveilleux réponse à la première place. Je suis ajoutant une autre réponse, car il ne rentrait pas dans un commentaire, et il serait trop vaste pour une modification.)
Voici ce qui a fonctionné pour moi de télécharger la dernière version d'un artefact appelé "component.jar" avec Maven 3.1.1 à la fin (d'autres suggestions n'ont pas, en raison principalement de maven changements de version je crois)
En fait, cela télécharge le fichier et copie dans le répertoire local de travail
De bash:
mvn dependency:get \
-DrepoUrl=http://.../ \
-Dartifact=com.foo.something:component:LATEST:jar \
-Dtransitive=false \
-Ddest=component.jar \
La commande:
mvn install:install-file
Généralement installe l'artefact dans votre dépôt local, de sorte que vous ne devriez pas avoir à le télécharger. Toutefois, si vous voulez partager votre artefact avec les autres, vous aurez besoin de déployer l'objet d'un dépôt central de voir le déployer plugin pour plus de détails.
En outre, l'ajout d'une dépendance à votre POM va récupérer automatiquement des tiers artefacts, que vous avez besoin quand vous en avez à construire votre projet. I. e. Ceci va télécharger l'artefact dans le référentiel central.
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.