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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top