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 local

Eu 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

questionAnswers(2)

yourAnswerToTheQuestion