Explicación detallada de repositorios y administración de distribución en pom.xml de maven

repositorios configuración de almacén remoto

En maven, pom.xml es el archivo de configuración principal para que funcione Maven. Su función incluye: configurar el almacén remoto que debe usarse en el proyecto Maven y la dependencia de recursos del proyecto Maven. El pom es la abreviatura de Project Object Model.

La función de la etiqueta de repositorios en pom.xml es configurar el almacén remoto del proyecto maven. Los ejemplos son los siguientes:

<repository>
    <id>nexus</id><!--远程仓库唯一标识符 -->
    <name>Private Repository</name><!--描述 -->
    <url><!--远程仓库url --></url>
    <layout>default</layout>
    <releases>  
        <enabled>true</enabled>  
    </releases>  
    <snapshots>
       <enabled>true</enabled>
       <updatePolicy>always</updatePolicy>
    </snapshots>
</repository>

Primero echemos un vistazo a la configuración. Puede agregar más de uno debajo, cada uno con su ID único, un nombre descriptivo y, lo más importante, la URL del almacén remoto. Además, true le dice a Maven que descargue los componentes de la versión de lanzamiento de este repositorio, y false le dice a Maven que no descargue los componentes de la versión instantánea de este repositorio. Se recomienda prohibir la descarga de componentes de instantáneas de repositorios públicos, ya que estos componentes son inestables y están fuera de su control, por lo que debe evitar su uso. Por supuesto, si desea utilizar el almacén dentro de la organización en la red de área local, puede activar el soporte de instantáneas

diseño: el tipo de diseño del almacén que se utiliza para ubicar y clasificar componentes; puede ser predeterminado (predeterminado) o heredado (heredado). Maven 2 proporciona un diseño predeterminado para su almacén; sin embargo, Maven 1.x tiene un diseño diferente. Podemos usar este elemento para especificar si el diseño es predeterminado (predeterminado) o heredado (heredado).

distribución La gestión distribuye componentes a almacenes remotos

mvn install instalará los componentes generados por el proyecto en el almacén local de Maven, y mvn deploy se utiliza para distribuir los componentes generados por el proyecto en el almacén remoto de Maven. Los componentes del almacén local de Maven solo pueden ser utilizados por el usuario actual. Después de ser distribuidos al almacén remoto de Maven, todos los usuarios que pueden acceder al almacén pueden usar sus componentes.

Necesitamos configurar el POM para especificar la ubicación de los componentes de distribución de Maven, de la siguiente manera:

<!-- 定义snapshots库和releases库的nexus地址 -->
<distributionManagement>
    <repository>
        <!-- 库的id -->
        <id>nexus-releases</id>
        <!-- 库的url -->
        <url>https://172.17.103.59:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>nexus-snapshots</id>
        <url>https://172.17.103.59:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

Si es una versión de instantánea, se publicará automáticamente en el repositorio de instantáneas cuando se ejecute la implementación de mvn. Mientras usa la versión instantánea del módulo, sin cambiar el número de versión, al compilar y empaquetar directamente, maven descargará automáticamente la última versión instantánea del servidor espejo.

Si es una versión de lanzamiento oficial, se lanzará automáticamente a la biblioteca de versiones oficiales cuando se ejecute mvn deploy, y se utilizará la versión oficial del módulo. Sin cambiar el número de versión, al compilar y empaquetar, si el módulo de esta versión ya existe localmente, usará el local en lugar de descargarlo activamente en el servidor espejo.

Cabe señalar que el valor de id en el elemento del servidor en settings.xml debe ser exactamente el mismo que el valor de id en el repositorio o snapshotRepository en el POM. Coloque la información de autenticación en la configuración en lugar del POM, porque el POM a menudo es visible para otros y el archivo settings.xml es local. el código se muestra a continuación:

<settings>
    ...    
    <servers>
        <server>
            <id>nexus-releases</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
        <server>
            <id>nexus-snapshots</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
    </servers>
    ...
</settings>

Supongo que te gusta

Origin blog.csdn.net/weixin_41003771/article/details/115183595
Recomendado
Clasificación