Saltar al contenido

¿Cómo puedo descargar un artefacto específico de Maven en una línea de comando?

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 
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *