Skip to content

Latest commit

 

History

History
57 lines (40 loc) · 2.19 KB

repositorios.md

File metadata and controls

57 lines (40 loc) · 2.19 KB

Repositórios

Um projeto possui dependências. Quando vamos compilar, executamos mvn compile. Nesse momento, o Maven analisa as dependências do pom.xml e procura essas bibliotecas em algum lugar. Esse lugar são os repositórios. Assim, a principal função dos mesmos é manter os artefatos que são utilizados pelo Maven para executar.

Tipos de repositórios

  • Local: É o repositório na máquina utilizado pelo Maven para buscar os artefatos. É uma estratégia de caching, para evitar uma busca toda vez que o Maven executa uma task. Fica na pasta do usuário no diretório .m2\repository
  • Remoto: É o local central utilizado pelo Maven para buscar os artefatos. Configurado automaticamente pelo Super POM para utilizar o Maven Central

Como funciona

alt=Acessa repositório Local

Aqui executamos mvn compile e o Maven encontrou no repositório local os artefatos que foi necessário.

alt=Repositório local não contém o artefato

Um outro cenário, é que o artefato que o projeto necessita não existe no repositório local.

alt=Repositório local não contém o artefato

Nesse caso, o Maven busca no repositório remoto, encontra o artefato e armazena o mesmo no repositório local. Na próxima vez que o artefato for utilizado já estará no repo local.

Configurando repositório remoto

Via settings.xml

  • Edite no arquivo pasta_apache_maven/conf/settings.xml, a tag <mirrors> incluindo o server que você deseja.
    <mirrors>
        <mirror>
            <id>internal-baeldung-repository</id>
            <name>Baeldung Internal Repo</name>
            <url>https://baeldung.com/repo/maven2/</url>
            <mirrorOf>*</mirrorOf>
        </mirror>
    </mirrors>

Essa configuração vai sobrescrever a configuração do pom.xml

Via pom.xml

No pom.xml, adicione a tag <repositories> e adicione o(s) repositório(s) que desejar.

<project>
	...
	<repositories>
		<repository>
			<id>my-internal-site</id>
			<url>https://myserver/repo</url>
		</repository>
	</repositories>
	...
</project>