Solución:
Puede usar el complemento de dependencia de maven que tiene un buen dependency:get
objetivo desde la versión 2.1. No es necesario un pom, todo sucede en la línea de comandos.
Para asegurarse de encontrar el dependency:get
objetivo, debe decirle explícitamente a maven que use la versión 2.1, es decir, debe usar el nombre completo del complemento, incluida la versión:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get
-DrepoUrl=url
-Dartifact=groupId:artifactId:version
ACTUALIZAR: Con versiones anteriores de Maven (anteriores a 2.1), es posible ejecutar dependency:get
normalmente (sin usar el nombre y la versión completamente calificados) al forzar a su copia de maven a usar una versión determinada de un complemento.
Esto puede hacerse de la siguiente manera:
1. Agregue la siguiente línea dentro del <settings>
elemento de tu ~/.m2/settings.xml
expediente:
<usePluginRegistry>true</usePluginRegistry>
2. Agrega el archivo ~/.m2/plugin-registry.xml
con el siguiente contenido:
<?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>
Pero esto parece que ya no funciona con maven 2.1 / 2.2. En realidad, de acuerdo con la Introducción al Registro de complementos, las características del plugin-registry.xml
han sido rediseñados (para la portabilidad) y el El registro de complementos se encuentra actualmente en un estado semi-inactivo dentro de Maven 2. Entonces creo que tenemos que usar el nombre largo por ahora (cuando usamos el complemento sin un pom, que es la idea detrás dependency:get
).
Con la última versión (2.8) del complemento de dependencia de Maven, descargar un artefacto del repositorio central de Maven es tan simple como:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=groupId:artifactId:version[:packaging[:classifier]]
dónde groupId:artifactId:version
, etc.son las coordenadas de Maven
Un ejemplo, probado con Maven 2.0.9, Maven 2.2.1 y 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
(Gracias a Pascal Thivent por brindar su maravillosa respuesta en primer lugar. Estoy agregando otra respuesta, porque no cabría en un comentario y sería demasiado extenso para editarlo).
Esto es lo que funcionó para mí para descargar la última versión de un artefacto llamado “component.jar” con Maven 3.1.1 al final (otras sugerencias no funcionaron, principalmente debido a los cambios de versión de Maven, creo)
Esto realmente descarga el archivo y lo copia en el directorio de trabajo local.
Desde bash:
mvn dependency:get
-DrepoUrl=http://.../
-Dartifact=com.foo.something:component:LATEST:jar
-Dtransitive=false
-Ddest=component.jar