Configuración de un repositorio privado Maven con Nexus

Tipos de repositorios en Maven

El ecosistema de Maven se basa en tres categorías principales:

  • Repositorio local: ubicado en la máquina del desarrollador, almacena las dependencias descargadas.
  • Repositorio central: mantenido por Apache Maven, contiene miles de librerías públicas.
  • Servidor privado (Nexus): repositorio interno donde se publican artefactos propios y que actúa como caché intermedio frente al repositorio central.

Cuando un artefacto no existe en el servidor privado, Nexus lo descarga automáticamente del repositorio central.

Instalación y puesta en marcha de Nexus

Para desplegar Nexus en un entorno local, siga los siguientes pasos:

  1. Descargue Nexus Repository Manager OSS desde el sitio oficial de Sonatype.
  2. Descomprima el archivo y acceda al directorio bin.
  3. Abra una terminal con privilegios de administrador y ejecute nexus.bat install para registrar el servicio.
  4. Inicie el servicio mediante nexus.bat start o desde el administrador de servicios de Windows.
  5. Consulte el puerto en el archivo nexus.properties y acceda a http://localhost:8081/nexus.

Las credenciales predeterminadas son admin / admin123. Tras iniciar sesión, el apartado Repositories muestra los almacenes configurados por defecto.

Categorías de almacenes en Nexus

Nexus organiza sus almacenes en cuatro grupos funcionales:

  1. Hosted: repositorios propios donde se publican artefactos internos. Suelen dividirse en versiones estables y versiones de desarrollo.
  2. Proxy: replican repositorios remotos como el central de Maven, descargando artefactos bajo demanda.
  3. Group: agrupan varios repositorios (hosted y proxy) bajo una única URL, simplificando la configuración de los clientes Maven.
  4. Virtual: mantiene compatibilidad con artefactos del formato Maven 1.

Publicación de artefactos en el servidor privado

Para subir un proyecto Maven al servidor privado se requiere configurar las credenciales en settings.xml, definir el destino en el pom.xml del proyecto y ejecutar el despliegue.

1. Credenciales en settings.xml

Añada los siguientes elementos dentro de servers:

<server>
    <id>repo-stable</id>
    <username>admin</username>
    <password>admin123</password>
</server>
<server>
    <id>repo-dev</id>
    <username>admin</username>
    <password>admin123</password>
</server>

Es importante que el IDE esté usando el mismo archivo settings.xml donde se añaden estas credenciales.

2. Destino de despliegue en pom.xml

En el proyecto que se desea publicar, incluya la siguiente sección:

<distributionManagement>
    <repository>
        <id>repo-stable</id>
        <url>http://localhost:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>repo-dev</id>
        <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

El identificador id debe coincidir con el definido en settings.xml.

3. Ejecución del despliegue

Ejecute el siguiente comando:

mvn deploy

La versión indicada en el pom.xml determina si el artefacto se almacena en el repositorio de versiones estables o en el de desarrollo. Si termina en -SNAPSHOT, se dirigirá al segundo.

Descarga de artefactos desde el servidor privado

Para consumir dependencias alojadas en Nexus, configure un perfil en settings.xml y actívelo.

1. Perfil de descarga

<profile>
    <id>enterprise</id>
    <repositories>
        <repository>
            <id>internal-nexus</id>
            <url>http://localhost:8081/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>plugins-internal</id>
            <name>Public Repositories</name>
            <url>http://localhost:8081/nexus/content/groups/public/</url>
        </pluginRepository>
    </pluginRepositories>
</profile>

2. Activación del perfil

<activeProfiles>
    <activeProfile>enterprise</activeProfile>
</activeProfiles>

3. Uso en el proyecto

Una vez activado el perfil, declare las dependencias en el pom.xml del proyecto. Maven buscará primero en el repositorio local; si no encuentra el artefacto, lo solicitará al servidor privado y, de ser necesario, lo descargará del repositorio central. Después de la primera descarga, el artefacto quedará disponible tanto en el servidor privado como en el repositorio local.

Etiquetas: maven Nexus java Dependency Management Repository Management

Publicado el 7-1 07:40