Como Maven resolve automaticamente as dependências da biblioteca de frascos.


Data de Publicação:17 de Janeiro de 2021.



INFOMARTION > Como Maven resolve automaticamente as dependências da biblioteca de frascos.

Visão geral.

Maven descarrega automaticamente frascos da Internet, mas eu gostaria de explicar exactamente como funciona.

A premissa deste artigo é que precisa de compreender o que é Maven, por isso se não estiver familiarizado com Maven em si, deve também consultar o artigo seguinte.

O que é Maven e o que faz Maven?

Tabela de Conteúdos

  1. A capacidade de Maven para resolver as dependências da biblioteca de frascos.
  2. resumo

1. A capacidade de Maven para resolver as dependências da biblioteca de frascos.

Maven pode recuperar automaticamente os ficheiros do frasco definindo simplesmente os ficheiros do frasco necessários no ficheiro pom.xml. Também aprende automaticamente os jarros dependentes necessários para correr esse jarro. Gostaria de explicar o seu funcionamento.

1-1. O que incluir no ficheiro pom.xml.

Primeiro, para resolver a dependência da biblioteca do frasco, a informação é fornecida no ficheiro pom.xml. Maven processa a informação do ficheiro pom.xml. Se "poi-3.17.jarro" for necessário, por exemplo, é descrito em pom.xml como se segue. (A propósito, 'poi-3.17.jar' é um frasco utilizado para manipular ficheiros Microsoft Office como o Excel.)

pom.xml


<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.17</version>
</dependency>

Basta mencionar o acima mencionado para descarregar "poi-3.17.jarro" a partir da Internet e também descarregar o frasco de acompanhamento da Internet que é necessário para executar "poi-3.17.jarro".

1-2. Como são descarregados a partir da Internet?

Uma explicação simples do sistema é mostrada no diagrama abaixo.

Descarregar dos repositórios Maven disponíveis na Internet. Se nada for definido, o valor por defeito é o Repositório Central. O URL é o seguinte.

https://repo1.maven.org/maven2/

Consulte o seguinte website para obter uma lista de repositórios disponíveis na Internet, se estiver interessado.

https://mvnrepository.com/repos

Na primeira vez, o frasco é retirado de um repositório externo, mas é copiado para o repositório local e não é retirado a partir da segunda vez. A localização do repositório local é "C:\Users\user\.m2".

Se quiser alterar o destino a partir do valor padrão, pode também alterar o destino incluindo a seguinte etiqueta de repositório em pom.xml.

pom.xml


<repositories>
    <repository>
        <id>sonatype-nexus-snapshots</id>
        <name>Sonatype Nexus Snapshots</name>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
        </snapshots>
    </repository>
</repositories>

1-3. Mecanismos para a resolução de dependências do frasco a adquirir.

Acabámos de descrever um exemplo de obtenção de 'poi-3.17.jar', mas 'poi-3.17.jar' requer 'colecções comuns4-4.1.jar' para correr. Isto significa que 'poi-3.17.jar' depende de 'commons-collections4-4.1.jar'. O mecanismo para resolver esta dependência pode ser encontrado no repositório Maven onde a 'poi-3.17.jar' é armazenada. O URL é o seguinte.

https://repo1.maven.org/maven2/org/apache/poi/poi/3.17/

Penso que "poi-3.17.pom" é armazenada, e neste ficheiro encontrará informação de que "poi-3.17.jar" depende de "commons-collections4-4.1.jar". Isto significa que quando se recupera 'poi-3.17.jar', o sistema não só recupera o ficheiro do frasco, mas também o ficheiro da pompa e verifica se existem outros ficheiros do frasco necessários.

2. resumo

O mecanismo da Maven para resolver dependências de bibliotecas de frascos é que as dependências são definidas no ficheiro pom onde os ficheiros dos frascos a serem recuperados são armazenados.

Obrigado por ter observado até ao fim.