Tipos de repositorios en Nexus Repository


Veremos los tipos de repositorios de Sonatype Nexus Repository y realizaremos un ejemplo para maven nexus

oscar Escrito por oscar 22 February 2026 1 0

En Sonatype Nexus Repository, cuando trabajas con artefactos de Apache Maven, existen tres tipos principales de repositorios: Hosted, Proxy y Group. Cada uno cumple un rol específico dentro de la arquitectura de gestión de dependencias.

Tipos de repositorios

Existen 3 tipos de repositorios

Maven Hosted Repository

Es un repositorio remoto gestionado internamente por Nexus, donde una organización almacena sus propios artefactos binarios (JARs, WARs) y dependencias privadas.

¿Qué hace?

Flujo típico

Tu proyecto → mvn deploy → Nexus (Hosted)

Caso práctico

Si creas una librería interna:  

mvn deploy

El .jar se sube a tu repositorio maven-releases o maven-snapshots.

Maven Proxy Repository

Es un tipo de repositorio gestionado con Nexus que actúa como un intermediario entre una red local y repositorios remotos públicos (ej. Maven Central).

¿Qué hace?

Ejemplo clásico

Proxy hacia:

Flujo

Proyecto → Nexus Proxy → Maven Central

(la primera vez descarga, luego sirve desde caché)

Beneficios

Maven Group Repository

Almacenamiento estructurado (local o remoto) utilizado para gestionar, organizar y descargar dependencias, plugins y artefactos de proyectos Java, basado en coordenadas únicas

¿Qué hace?

Ejemplo típico de grupo

maven-public
├── maven-releases (hosted)
├── maven-snapshots (hosted)
└── maven-central (proxy)

Flujo

Proyecto → maven-public (Group) → Nexus decide dónde buscar

El desarrollador solo configura:

<repository>
  <url>http://nexus:8081/repository/maven-public/</url>
</repository>

Y Nexus decide si:

Ventaja clave

👉 Simplifica configuración. El desarrollador no necesita conocer todos los repositorios internos.

Comparación Técnica

Tipo Almacena artefactos propios Descarga de internet Es virtual
Hosted ✅ Sí ❌ No ❌ No
Proxy ❌ No ✅ Sí ❌ No
Group ❌ No (agrega otros) Indirectamente ✅ Sí

Arquitectura típica empresarial

En producción normalmente se tiene:

Y los desarrolladores SOLO usan el Group.

Crear primer repositorio Maven en Nexus

El objetivo es crear lo siguiente:

  1. Un repositorio Maven Hosted (para publicar tus propios JARs)
  2. Un repositorio Maven Proxy (para cachear Maven Central)
  3. Un repositorio Maven Group (para usar uno solo desde Maven)

En nexus por defecto ya crea un repositorio maven-releases, así que vamos a crear un maven-releases-local

Crear un Maven Hosted (artefactos internos)

Ingresamos a los repositorios con la ruta Settings → Repositories → Create repository

Crear un repositorio Maven
Crear un repositorio Maven

Mostrara la siguiente pantalla seleccionaremos el recipiente a usar, en este caso:

maven2 (hosted)

Selección de recipiente para Maven
Selección de recipiente para Maven

En el formulario de crear el repositorio vamos a colocar los siguientes datos

Formulario para crear repositorio Maven en Nexus
Formulario para crear repositorio Maven en Nexus

 Completa así:

Click en Create repository

✔ Ya tienes tu repositorio para versiones finales.

Crear un Maven Proxy (para Maven Central)

Este es el que realmente usarás desde Maven.

Ingresamos a los repositorios con la ruta Settings → Repositories → Create repository

Seleccionamos maven2 (proxy)

En el formulario colocamos 

Click en Create repository

✔ Ahora Nexus puede descargar dependencias externas y guardarlas.

Crear un Maven Group (el más importante)

Este es el que realmente usarás desde Maven.

Ingresamos a los repositorios con la ruta Settings → Repositories → Create repository

Seleccionamos maven2 (group)

En la sección Group members, agrega:

Moverlos al lado derecho (Selected).

Click en Create repository

¿Qué acabas de construir?

Maven (tu proyecto)
        ↓
maven-public (group)
        ↓
   ├── maven-releases (interno)
   └── maven-central (proxy)

Ahora tu proyecto solo apunta a:

http://localhost:8081/repository/maven-public/

Crear un proyecto Maven

Para mas detalle de cómo crear un repositorio revisa la el post Crear un archetype web con maven y java, a continuación, realizamos un ejemplo, se asume que ya tiene conocimiento de Java y maven ademas de tener estos instalados en su maquina local.

Crear el arquetipo

En tu máquina ejecutamos:

mvn archetype:generate -DgroupId=com.oscar.demo -DartifactId=mi-libreria -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Entrar al proyecto:

cd mi-libreria

Estructura generada:

mi-libreria/
 ├── pom.xml
 └── src/

Ajustar versión (Release)

Edita el pom.xml y asegúrate:

<groupId>com.oscar.demo</groupId>
<artifactId>mi-libreria</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>

⚠ No debe terminar en -SNAPSHOT si vas a usar maven-releases.

Configurar credenciales en Maven

~/.m2/settings.xml

<servers>
  <server>
    <id>nexus-releases</id>
    <username>admin</username>
    <password>TU_PASSWORD</password>
  </server>
</servers>

(Usa el usuario que creaste en Nexus, idealmente no admin en producción)

Generar el JAR

mvn clean package

Se crea: target/mi-libreria-1.0.0.jar

Publicar en Nexus

mvn clean deploy

Si todo está correcto verás:

BUILD SUCCESS

Verificar en Nexus

Ingresamos de nuevo a Maven, y en la sección de browse, buscamos el repositorio maven-releases-local, en donde veremos el componente creado y subido.

Visualizar repositorios maven
Visualizar repositorios maven

Con esto ya podemos cargar nuestros propios artefactos en Java a un repositorio privado que podemos controlar.


Comentario

Debe aceptar antes de enviar