
Nexus Repository est un gestionnaire d'artefacts : un serveur central qui stocke vos paquets privés, met en cache les dépendances publiques et sert le tout à vos postes et à votre CI/CD, quel que soit le format (Maven, npm, PyPI, Docker et bien d'autres). Cette section explique ce qu'il apporte, comment sont structurés ses dépôts, ce que valent ses éditions, et vous emmène de l'installation au registre Docker privé. Chaque guide pratique est validé sur une instance réelle (Community Edition). Public visé : développeurs et administrateurs qui veulent maîtriser leur chaîne de dépendances.
Les guides de cette section
Section intitulée « Les guides de cette section »Pourquoi un gestionnaire d'artefacts
Section intitulée « Pourquoi un gestionnaire d'artefacts »Sans dépôt central, chaque build télécharge ses dépendances directement depuis Internet et publie ses livrables où il peut. Trois problèmes surgissent vite : la lenteur (on retélécharge les mêmes paquets), la fragilité (un paquet retiré ou un dépôt public en panne casse la CI) et le manque de contrôle (personne ne sait ce qui entre dans les builds). Un gestionnaire d'artefacts comme Nexus règle les trois :
- Cache local des dépendances publiques : les builds sont plus rapides et survivent à une panne du dépôt amont.
- Stockage privé de vos propres paquets et images, versionnés et partagés entre équipes.
- Point de contrôle de la chaîne d'approvisionnement : tout ce que consomment et produisent vos projets transite par un seul endroit, auditable.
C'est cette centralisation qui fait de Nexus une brique de sécurisation de la supply chain autant qu'un outil de productivité.
Les formats supportés
Section intitulée « Les formats supportés »La force de Nexus est de gérer de nombreux formats derrière une interface unique. Un même serveur héberge vos artefacts Java, vos paquets front-end, vos images de conteneurs et vos paquets système.
| Écosystème | Formats Nexus |
|---|---|
| Java / JVM | Maven, Gradle (via Maven) |
| JavaScript | npm |
| Python | PyPI, Conda |
| Conteneurs | Docker (OCI), Helm |
| .NET | NuGet |
| Systèmes | apt (Debian/Ubuntu), yum (RHEL) |
| Autres | raw (fichiers quelconques), Composer (PHP), Cargo (Rust), Conan (C/C++), R, Go |
Le format raw mérite une mention : il stocke n'importe quel fichier (archives, binaires, rapports) sans logique de format. C'est le dépôt fourre-tout pour ce qui n'entre dans aucune autre catégorie.
Les trois types de dépôts
Section intitulée « Les trois types de dépôts »Tout repose sur trois types de dépôts que l'on combine. Les comprendre, c'est comprendre Nexus.
| Type | Rôle | Exemple |
|---|---|---|
| proxy | Met en cache un dépôt public distant | un miroir de Maven Central ou de PyPI |
| hosted | Stocke vos artefacts privés | vos images internes, vos releases maison |
| group | Agrège plusieurs dépôts derrière une seule URL | privé + proxy servis ensemble |
Le montage recommandé est le group : vos clients pointent sur une URL unique, et Nexus cherche d'abord dans le dépôt privé, puis dans le proxy public. On configure une fois côté client, et l'organisation interne des dépôts reste invisible. À l'installation, Nexus crée déjà ces trois types pour chaque grand format, comme le montre la liste des dépôts :

On y lit, pour chaque écosystème, un proxy (cache public), un hosted (privé) et un group qui les réunit. C'est ce modèle que déclinent les guides proxy et cache et registre Docker.
Où Nexus range les données : blob store
Section intitulée « Où Nexus range les données : blob store »Nexus sépare deux choses. Les métadonnées (quel composant, quelle version, quel dépôt) vivent dans sa base de données. Les fichiers eux-mêmes (le .jar, le .whl, les couches d'image) sont écrits dans un blob store, un espace de stockage sur disque ou objet.
Cette séparation a des conséquences pratiques : une sauvegarde complète doit couvrir la base et le blob store, et l'espace disque se pilote au niveau du blob store. Un même blob store peut servir plusieurs dépôts, ou vous pouvez en dédier un par usage pour isoler le stockage.
Community Edition et Pro : quotas et licence
Section intitulée « Community Edition et Pro : quotas et licence »Le terme « Nexus OSS » reste le plus recherché, mais il ne correspond plus à l'offre. Depuis 2025, l'édition gratuite s'appelle Community Edition : ce n'est plus un pur logiciel libre, son usage est encadré par une licence (EULA) acceptée à l'installation et par des quotas.
| Community Edition | Pro | |
|---|---|---|
| Prix | Gratuit | Payant |
| Licence | EULA à accepter | Commerciale |
| Quota composants | 40 000 au total | illimité |
| Quota requêtes | 100 000 par jour | illimité |
| Entreprise | non | SSO/SAML, haute disponibilité, réplication, support |
Pour héberger uniquement des images de conteneurs sans ces contraintes, un registre OCI réellement libre comme Harbor peut suffire. Pour un gestionnaire multi-formats resté 100% open source (GPL), voyez Pulp. La version courante de Nexus est 3.93 (2026) ; les guides de cette section sont validés sur la 3.77.
Intégrer Nexus à la CI/CD
Section intitulée « Intégrer Nexus à la CI/CD »Un gestionnaire d'artefacts prend toute sa valeur branché sur la CI/CD : les pipelines tirent leurs dépendances de Nexus et poussent leurs livrables dedans. Le principe est le même quel que soit l'outil.
- Résolution des dépendances : on configure l'outil de build (Maven, npm, pip) pour pointer sur le group Nexus au lieu du dépôt public. Le cache accélère et fiabilise le build.
- Publication des livrables : après un build réussi, le pipeline pousse l'artefact (JAR, image, wheel) dans un dépôt hosted, avec un compte de service dédié.
- Authentification : en CI, on n'utilise jamais le compte admin. On crée un utilisateur de service avec les seuls droits nécessaires (lecture sur les proxys, écriture sur le hosted cible).
Côté Jenkins, un plugin officiel gère la publication ; côté GitLab CI, on renseigne l'URL et les identifiants Nexus dans le .gitlab-ci.yml. Le registre Docker montre concrètement un docker login puis un docker push vers Nexus.
Sécurité et exploitation
Section intitulée « Sécurité et exploitation »Un dépôt central est une cible et un point de défaillance : il mérite le même soin qu'une base de données de production.
- Authentification centralisée : Nexus s'intègre à LDAP ou à un annuaire d'entreprise pour ne pas gérer les comptes à la main, et applique un contrôle d'accès par rôle (qui lit, qui publie, sur quel dépôt).
- Accès anonyme maîtrisé : pratique en lab, il doit être désactivé en production pour qu'aucun dépôt ne soit lisible sans identifiant.
- Politiques de nettoyage (cleanup policies) : elles suppriment automatiquement les artefacts périmés (vieux snapshots, versions non téléchargées depuis X jours) pour maîtriser le stockage et rester sous les quotas.
- Sauvegarde : elle doit couvrir la base de données et le blob store de façon cohérente ; sauvegarder l'un sans l'autre donne une restauration inutilisable.
- Mises à jour : suivez les versions pour les correctifs de sécurité, en testant la montée de version sur une instance de recette.
Nexus face aux alternatives
Section intitulée « Nexus face aux alternatives »Nexus n'est pas seul. Le bon choix dépend des formats, du budget et de la contrainte open source.
| Solution | Positionnement | Quand le choisir |
|---|---|---|
| Nexus | Multi-formats, historique | Beaucoup de formats, écosystème Java/DevOps établi |
| Artifactory (JFrog) | Multi-formats, entreprise | Gros besoins entreprise, budget dédié |
| Harbor | Registre OCI dédié conteneurs | Uniquement des images, 100% open source |
| Pulp | Multi-formats, 100% GPL | Souveraineté, pas d'EULA ni de quota |
Nexus reste un excellent défaut quand vous jonglez avec plusieurs formats et que la Community Edition suffit à votre volume. Dès que le 100% open source ou l'absence de quota devient un critère dur, Pulp ou Harbor prennent l'avantage selon que vous voulez du multi-format ou seulement des conteneurs.
Bonnes pratiques
Section intitulée « Bonnes pratiques »- Exposez un dépôt group aux clients, pas les dépôts individuels : une seule URL à configurer, l'organisation interne reste souple.
- Un compte de service par usage en CI, avec le minimum de droits, jamais le compte admin.
- Des cleanup policies dès le départ pour ne pas découvrir les quotas le jour où ils vous bloquent.
- Sauvegardez base et blob store ensemble, et testez la restauration, pas seulement la sauvegarde.
- Épinglez la version de l'image en production et planifiez les montées de version pour les correctifs.
À retenir
Section intitulée « À retenir »- Nexus Repository centralise le cache des dépendances publiques et le stockage de vos artefacts privés, sur de nombreux formats.
- Trois types de dépôts : proxy (cache public), hosted (privé), group (agrégation derrière une URL) ; exposez le group.
- Les fichiers vivent dans un blob store, les métadonnées dans la base : sauvegardez les deux.
- La version gratuite est la Community Edition : EULA, 40 000 composants et 100 000 requêtes/jour ; au-delà, l'ajout de composants est suspendu.
- Version courante : Nexus 3.93 (2026). Alternatives : Artifactory, ou Harbor / Pulp pour du 100% open source.
FAQ : Nexus Repository
Section intitulée « FAQ : Nexus Repository »- proxy vers les dépôts publics (cache local, builds plus rapides),
- hébergement de vos artefacts privés,
- point unique pour la CI/CD.
- Elle est soumise à des quotas (nombre de composants et de requêtes).
- Elle requiert l'acceptation d'un EULA au démarrage.
- Au-delà des limites, il faut passer à la version Pro (payante).
| Type | Rôle |
|---|---|
| proxy | met en cache un dépôt distant public |
| hosted | héberge vos artefacts privés |
| group | agrège plusieurs dépôts derrière une seule URL |
group aux clients (une seule URL à configurer), qui combine le cache proxy et vos paquets hosted.- Nexus (Sonatype) : édition Community gratuite mais désormais limitée (quotas, EULA).
- Artifactory (JFrog) : offre large, forte intégration DevOps (JFrog Platform, Xray), version gratuite restreinte.