Cómo Maven resuelve automáticamente las dependencias de las bibliotecas jar.


Fecha de publicación:17 de enero de 2021.



INFOMARTION > Cómo Maven resuelve automáticamente las dependencias de las bibliotecas jar.

Resumen.

Maven descarga automáticamente los jars de Internet, pero me gustaría explicar exactamente cómo funciona.

La premisa de este artículo es que usted necesita entender lo que es Maven, así que si usted no está familiarizado con Maven en sí, también debe consultar el siguiente artículo.

¿Qué es Maven y qué hace Maven?

Índice de contenidos

  1. La capacidad de Maven para resolver las dependencias de las bibliotecas jar.
  2. resumen

1. La capacidad de Maven para resolver las dependencias de las bibliotecas jar.

Maven puede recuperar automáticamente los archivos jar simplemente definiendo los archivos jar necesarios en el archivo pom.xml. También aprende automáticamente los jars dependientes necesarios para ejecutar ese jar. Me gustaría explicar cómo funciona.

1-1. Qué incluir en el archivo pom.xml.

En primer lugar, para resolver la dependencia de la biblioteca jar, se proporciona información en el archivo pom.xml. Maven procesa la información del archivo pom.xml. Si se requiere "poi-3.17.jar", por ejemplo, se describe en pom.xml como sigue. (Por cierto, 'poi-3.17.jar' es un tarro utilizado para manipular archivos de Microsoft Office, como Excel.)

pom.xml


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

Simplemente mencionando lo anterior se descargará "poi-3.17.jar" de Internet y también se descargará el jar adjunto de Internet que se requiere para ejecutar "poi-3.17.jar".

1-2. ¿Cómo se descargan de Internet?

En el siguiente diagrama se muestra una explicación sencilla del sistema.

Descarga desde los repositorios de Maven disponibles en Internet. Si no se establece nada, el valor por defecto es Repositorio Central. La URL es la siguiente.

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

En el siguiente sitio web encontrará una lista de repositorios disponibles en Internet si está interesado.

https://mvnrepository.com/repos

La primera vez, el jar se obtiene de un repositorio externo, pero se copia en el repositorio local y no se obtiene a partir de la segunda vez. La ubicación del repositorio local es "C:\NUsers\\Nuser.m2".

Si quieres cambiar el destino del valor por defecto, también puedes cambiar el destino incluyendo la siguiente etiqueta de repositorio en 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 resolver las dependencias del tarro que se va a adquirir.

Acabamos de describir un ejemplo de obtención de 'poi-3.17.jar', pero 'poi-3.17.jar' requiere 'commons-collections4-4.1.jar' para funcionar. Esto significa que 'poi-3.17.jar' depende de 'commons-collections4-4.1.jar'. El mecanismo para resolver esta dependencia se encuentra en el repositorio de Maven donde se almacena el 'poi-3.17.jar'. La URL es la siguiente.

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

Creo que "poi-3.17.pom" está almacenado, y en este archivo encontrará información de que "poi-3.17.jar" depende de "commons-collections4-4.1.jar". Esto significa que cuando se recupera 'poi-3.17.jar', el sistema no sólo recupera el archivo jar, sino también el archivo pom y busca otros archivos jar necesarios.

2. resumen

El mecanismo de Maven para resolver las dependencias de las bibliotecas jar es que las dependencias se definen en el archivo pom donde se almacenan los archivos jar a recuperar.

Gracias por mirar hasta el final.