Maven - Repositórios

O que é um repositório Maven?

Na terminologia do Maven, um repositório é um diretório onde todos os jars do projeto, jar da biblioteca, plug-ins ou quaisquer outros artefatos específicos do projeto são armazenados e podem ser usados ​​pelo Maven facilmente.

O repositório Maven é de três tipos. A ilustração a seguir dará uma idéia sobre esses três tipos.

  • local
  • central
  • remote

Repositório Local

O repositório local Maven é um local de pasta em sua máquina. Ele é criado quando você executa qualquer comando maven pela primeira vez.

O repositório local Maven mantém todas as dependências do seu projeto (jars de biblioteca, jars de plugin etc.). Quando você executa uma compilação do Maven, o Maven baixa automaticamente todos os jars de dependência para o repositório local. Isso ajuda a evitar referências a dependências armazenadas na máquina remota sempre que um projeto é construído.

O repositório local Maven por padrão é criado pelo Maven no diretório% USER_HOME%. Para substituir o local padrão, mencione outro caminho no arquivo Maven settings.xml disponível no diretório% M2_HOME% \ conf.

<settings xmlns = "http://maven.apache.org/SETTINGS/1.0.0"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://maven.apache.org/SETTINGS/1.0.0 
   http://maven.apache.org/xsd/settings-1.0.0.xsd">
   <localRepository>C:/MyLocalRepository</localRepository>
</settings>

Quando você executa o comando Maven, o Maven baixa as dependências para seu caminho personalizado.

Repositório central

O repositório central Maven é um repositório fornecido pela comunidade Maven. Ele contém um grande número de bibliotecas comumente usadas.

Quando o Maven não encontra nenhuma dependência no repositório local, ele começa a pesquisar no repositório central usando a seguinte URL - https://repo1.maven.org/maven2/

Os principais conceitos do repositório central são os seguintes -

  • Este repositório é gerenciado pela comunidade Maven.
  • Não é necessário configurar.
  • Requer acesso à Internet para ser pesquisado.

Para navegar pelo conteúdo do repositório central maven, a comunidade maven forneceu um URL - https://search.maven.org/#browse. Usando esta biblioteca, um desenvolvedor pode pesquisar todas as bibliotecas disponíveis no repositório central.

Repositório Remoto

Às vezes, o Maven também não encontra uma dependência mencionada no repositório central. Em seguida, ele para o processo de construção e envia uma mensagem de erro para o console. Para evitar tal situação, Maven fornece conceito deRemote Repository, que é o repositório customizado do próprio desenvolvedor que contém as bibliotecas necessárias ou outros jars de projeto.

Por exemplo, usando o POM.xml mencionado abaixo, o Maven baixará a dependência (não disponível no repositório central) dos Repositórios Remotos mencionados no mesmo pom.xml.

<project xmlns = "http://maven.apache.org/POM/4.0.0"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.companyname.projectgroup</groupId>
   <artifactId>project</artifactId>
   <version>1.0</version>
   <dependencies>
      <dependency>
         <groupId>com.companyname.common-lib</groupId>
         <artifactId>common-lib</artifactId>
         <version>1.0.0</version>
      </dependency>
   <dependencies>
   <repositories>
      <repository>
         <id>companyname.lib1</id>
         <url>http://download.companyname.org/maven2/lib1</url>
      </repository>
      <repository>
         <id>companyname.lib2</id>
         <url>http://download.companyname.org/maven2/lib2</url>
      </repository>
   </repositories>
</project>

Sequência de pesquisa de dependência Maven

Quando executamos os comandos de construção do Maven, o Maven começa a procurar bibliotecas de dependência na seguinte sequência -

  • Step 1 - Pesquise a dependência no repositório local, se não for encontrada, vá para a etapa 2 ou execute o processamento adicional.

  • Step 2 - Pesquise a dependência no repositório central, se não for encontrada e o repositório / repositórios remotos for / forem mencionados, vá para a etapa 4. Caso contrário, ele é baixado para o repositório local para referência futura.

  • Step 3 - Se um repositório remoto não foi mencionado, o Maven simplesmente para o processamento e gera um erro (não foi possível encontrar a dependência).

  • Step 4- Pesquisa de dependência em repositório ou repositórios remotos, se encontrada, ela é baixada para o repositório local para referência futura. Caso contrário, o Maven para o processamento e gera um erro (não foi possível encontrar a dependência)