Recuperar o Maven Artefato a partir do Repositório Maven API Java
-
12-12-2019 - |
Pergunta
Se eu tiver um Maven Artefato de informação (GroupId, Artifactld, Versão) como posso por meio de programação (Java) recuperar o Artefato do meu repositório local?
Especificamente, eu preciso ser capaz de se conectar ao Repositório Maven e criar/recuperar de uma org.apache.o maven.artefato.Artefato para que eu possa recuperar o arquivo associado com o Artefato.
Eu olhei em m2e o código fonte, mas o MavenImpl.java (que fornece o Artefato resolução), é muito mais complexo do que o que eu preciso e é difícil entender como a conexão com o repositório de trabalhos.
Solução
Você provavelmente vai querer olhar para ela.Veja o wiki para exemplos.
Outras dicas
Você pode construir uma URL a partir do dado de informações e baixar o arquivo (nota, substituir o '.'
no <groupId>
com '/'
):
<repositoryUrl>/<groupId>/<artifactId>/<version>/<artifactId>-<version>.<type>
Esta é a forma como o fazemos jcabi-aether:
final File repo = this.session.getLocalRepository().getBasedir();
final Collection<Artifact> deps = new Aether(this.getProject(), repo).resolve(
new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"),
JavaScopes.RUNTIME
);
Dê a ele uma lista de repositórios remotos, um local de um acordo de recompra, e o Maven coordenadas do artefato.Como mostra o nome, a biblioteca utiliza Apache Aether a partir de Sonatype.