1
resposta

É possível ter mais de um repositório do nexus?

Estou tendo problemas quando vou atualizar as dependências do meu projeto. Quando observo o log, vejo que as dependências estão sendo baixadas do nexus da minha instituição, ao invés de baixar da internet (https://repo1.maven.org/maven2/). Gostaria de saber se é possível ter mais de um repositório configurado no meu computador. Fiz a configuração abaixo no POM da minha aplicação mas não deu certo, conforme orientação deste site (https://maven.apache.org/guides/mini/guide-multiple-repositories.html).

<repositories>
    <repository>
        <id>Default</id>
        <name>Default For Dev.All</name>
        <url>https://repo1.maven.org/maven2/</url>
    </repository>
</repositories>
1 resposta

Olá, Alessandro!

Entendo que você está com dificuldades para configurar mais de um repositório no Maven. Sim, é possível ter mais de um repositório configurado no seu projeto Maven.

A configuração que você fez no POM do seu projeto parece estar correta. No entanto, o Maven procura as dependências primeiramente no repositório local (geralmente na pasta .m2 no seu diretório home). Se ele não encontrar as dependências lá, ele vai procurar nos repositórios remotos configurados.

Se você tem um repositório Nexus configurado na sua máquina, o Maven pode estar baixando as dependências de lá por padrão. Isso pode ser devido a uma configuração no seu arquivo settings.xml do Maven, que fica na pasta .m2.

Nesse arquivo, você pode ter algo como:

<mirrors>
  <mirror>
    <id>nexus</id>
    <mirrorOf>*</mirrorOf>
    <url>http://seu.nexus.com/nexus/content/groups/public/</url>
  </mirror>
</mirrors>

Nesse caso, o Maven está configurado para buscar todas as dependências (<mirrorOf>*</mirrorOf>) no seu Nexus (<url>http://seu.nexus.com/nexus/content/groups/public/</url>).

Para resolver o problema, você pode tentar adicionar o repositório da internet no seu settings.xml, da seguinte forma:

<mirrors>
  <mirror>
    <id>nexus</id>
    <mirrorOf>external:*</mirrorOf>
    <url>http://seu.nexus.com/nexus/content/groups/public/</url>
  </mirror>
  <mirror>
    <id>central</id>
    <mirrorOf>central</mirrorOf>
    <url>https://repo1.maven.org/maven2/</url>
  </mirror>
</mirrors>

Nesse caso, o Maven vai buscar as dependências primeiro no seu Nexus, e se não encontrar, vai buscar no repositório central do Maven na internet.

Lembre-se de substituir http://seu.nexus.com/nexus/content/groups/public/ pelo endereço do seu Nexus.

Espero ter ajudado e bons estudos!