Como faço para baixar um jar usando maven programaticamente
Eu estou escrevendo um aplicativo que requer que eu faça o download de um jar, dado o mavens groupid / artifactid / version.
Eu atualmente começo com
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();
}
}
Assim, dada a URL do POM, agora tenho o objeto Model do maven representando-o. Isso parece funcionar bem.
O que eu gostaria de saber é duas coisas:
encontre a url do artefato jar que o modelo representa no repositório maven que o plugin maven usariadado o modelo, encontre o arquivo que representa o jar no repositório localEu já tenho soluções de má qualidade: eu vou para o mvnrepository.com codificando manualmente o url, e eu uso ~ / .m2 / repository como o prefixo para o arquivo. Obviamente, posso melhorar essa solução, mas acabarei duplicando mal o código que está bem testado e bem usado na base de código do maven.
Eu realmente gostaria de saber como fazer isso usando as classes do maven.
Eu fiz um pouco de pesquisa no google, mas a coisa divertida sobre procurar por qualquer coisa sobre maven e jars (mesmo em stackoverflow) é que eu encontro muitas soluções sobre como usar maven, ao invés de como codificar usando as classes maven.
Obrigado pela ajuda