Estoy escribiendo una aplicación que requiere que descargue un jar dado el mazo groupid/artifactid/version.Cómo descargo un jar usando maven programtically
Actualmente comienzo con
public Model pomToModel(String pomUrl) throws Exception {
URL url = new URL(pomUrl);
InputStream stream = url.openStream();
try {
Model model = new MavenXpp3Reader().read(stream);
return model;
} finally {
stream.close();
}
}
Así dé la URL del POM, ahora tengo el objeto experto Modelo representarla. Esto parece funcionar bien.
Lo que me gustaría hacer saber es dos cosas:
- buscar la URL del artefacto frasco de que el modelo representa en el repositorio de Maven que el plugin experto usaría
- Dado el modelo, se encuentran el fichero que representa el frasco en el repositorio local
ya tengo soluciones de baja calidad: voy a mvnrepository.com manualmente la codificación de la URL, y utilizo ~/.m2/repositorio como el prefijo para el archivo. Obviamente puedo mejorar esta solución, pero terminaré duplicando mal el código que está bien probado y bien utilizado en la base de código maven.
Realmente me gustaría saber cómo hacer esto usando las clases de maven.
He hecho una buena cantidad de búsquedas en Google, pero lo divertido de buscar cualquier cosa sobre maven y jar (incluso en stackoverflow) es que encuentro muchas soluciones sobre cómo usar maven, en lugar de cómo codificar usando las clases maven.
Gracias por la ayuda
Maven descargas todo tarro archivos que están especificados en su pom.xml. –
eche un vistazo a [jcabi-aether] (http://www.jcabi.com/jcabi-aether/), que puede ayudar a hacer esto más fácil y en menos línea de código – yegor256