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)