TawaKnow LogoTawaKnow
AWSDevOpsFavorisContribuer

© 2026 TawaKnow. Tous droits réservés.

Mentions LégalesPolitique de confidentialitéContribuer
Pratiques DevOps
0/29 chapitres0%
1.

Introduction au DevOps

2.

Introduction à Linux

3.

Système de Fichiers Linux

4.

Interface en Ligne de Commande (CLI)

5.

Gestionnaire de Paquets Linux

6.

Vim — Éditeur de Texte CLI

7.

Utilisateurs & Groupes Linux

8.

Permissions & Propriété des Fichiers

9.

Shell Scripting Bash

10.

Variables d'Environnement Linux

11.

Réseau Linux

12.

SSH — Secure Shell

13.

Introduction à Git & Contrôle de Version

14.

Configurer un Dépôt Git

15.

Flux de Travail Git — add, commit, push, pull

16.

Branches Git & Merge Requests

17.

Git Avancé — Commandes, .gitignore & Bonnes Pratiques

18.

Outils de Build & Gestionnaires de Paquets

19.

Build Tools, Docker & CI/CD

20.

Introduction à Nexus — Gestionnaire de Dépôts d'Artifacts

21.

Installer et Configurer Nexus sur un Serveur

22.

Nexus — Repositories, Publication et API REST

23.

Introduction aux Containers & Docker

24.

Commandes Docker & Registries

25.

Dockerfile — Créer des Images Docker

26.

Docker Compose, Volumes & Bonnes Pratiques

27.

Introduction à Jenkins & CI/CD

28.

Installer et Configurer Jenkins

29.

Jenkins Pipeline & Jenkinsfile

...Nexus — Repositories, Publication et API REST
CoursPratiques DevOpsNexus — Repositories, Publication et API REST
Chapitre 22/29

Nexus — Repositories, Publication et API RESTNexus — Repositories, Publication et API REST

6 min de lecture
Total: ~6 min
Progression du cours0/29 chapitres

Nexus — Repositories, Publication d'Artifacts et API REST

Une fois Nexus installé, vous devez comprendre comment organiser vos dépôts, publier vos artifacts et interagir avec Nexus via son API.


Repositories par défaut

Après installation, Nexus crée automatiquement des repositories par défaut :

NomTypeFormatDescription
maven-centralproxymaven2Proxy vers Maven Central
maven-publicgroupmaven2Groupe combinant tous les repos Maven
maven-releaseshostedmaven2Vos artifacts Maven stables
maven-snapshotshostedmaven2Vos artifacts Maven en développement
nuget-groupgroupnugetGroupe NuGet
nuget-hostedhostednugetArtifacts .NET internes
nuget.org-proxyproxynugetProxy vers nuget.org

Types de Repositories

Nexus propose 3 types de repositories :

1. Hosted — Repository interne

Stocke les artifacts produits en interne par votre équipe.

CI/CD Pipeline  ──push──►  NEXUS (hosted)
Serveur prod    ◄──pull──   NEXUS (hosted)

Exemples : maven-releases, maven-snapshots

2. Proxy — Intermédiaire vers un repo externe

Fait office de cache entre vos builds et un repository public.

Build local  ──►  NEXUS (proxy)  ──►  Maven Central
                      │
                      ▼ (cache local)

Avantage : si Maven Central est indisponible, Nexus sert la version en cache.

3. Group — Regroupement de repositories

Agrège plusieurs repositories en une seule URL.

Développeur  ──►  NEXUS (group: maven-public)
                       ├── maven-central (proxy)
                       ├── maven-releases (hosted)
                       └── maven-snapshots (hosted)

Le build utilise une seule URL pour accéder à tout.


Formats de Repositories

Chaque technologie a son format d'artifact et son format de repository :

FormatTechnologieType d'artifact
maven2Java (Maven, Gradle)JAR, WAR, POM
npmJavaScript / Node.jsPackage npm
dockerDockerImage Docker
nuget.NET / C#Package NuGet
pypiPythonPackage pip
helmKubernetesChart Helm
goGoModule Go
rawTout fichierZIP, TAR, binaires

Publier un Artifact vers Nexus

Via les outils de build (Maven / Gradle)

Configurer l'outil de build avec l'adresse et les credentials Nexus.

Maven — pom.xml

<distributionManagement>
  <repository>
    <id>nexus-releases</id>
    <url>http://IP-NEXUS:8081/repository/maven-releases/</url>
  </repository>
  <snapshotRepository>
    <id>nexus-snapshots</id>
    <url>http://IP-NEXUS:8081/repository/maven-snapshots/</url>
  </snapshotRepository>
</distributionManagement>

Configurer les credentials dans ~/.m2/settings.xml :

<servers>
  <server>
    <id>nexus-releases</id>
    <username>admin</username>
    <password>votre-mot-de-passe</password>
  </server>
</servers>

Publier :

mvn deploy

Gradle — build.gradle

apply plugin: 'maven-publish'

publishing {
    repositories {
        maven {
            url = "http://IP-NEXUS:8081/repository/maven-releases/"
            credentials {
                username "admin"
                password "votre-mot-de-passe"
            }
        }
    }
    publications {
        maven(MavenPublication) {
            from components.java
        }
    }
}

Publier :

gradle publish

Nexus REST API

Nexus expose une API REST complète pour interagir par programme.

Ce qu'on peut faire avec l'API

  • Lister les repositories
  • Lister les composants d'un repository
  • Télécharger un artifact
  • Uploader un artifact
  • Gérer les utilisateurs et rôles

Exemples avec curl

# Lister tous les repositories
curl -u user:password -X GET \
  'http://IP-NEXUS:8081/service/rest/v1/repositories'

# Lister les composants d'un repository
curl -u user:password -X GET \
  'http://IP-NEXUS:8081/service/rest/v1/components?repository=maven-snapshots'

# Télécharger un artifact spécifique
curl -u user:password -X GET \
  'http://IP-NEXUS:8081/repository/maven-releases/com/exemple/app/1.0/app-1.0.jar' \
  -o app-1.0.jar

Conseil : toujours consulter la documentation officielle pour les endpoints — l'API évolue et il y a beaucoup d'endpoints. Pas besoin d'apprendre par coeur.

Utilisation dans un pipeline CI/CD

# Dans un script Jenkins/GitLab CI — télécharger la dernière version
ARTIFACT_URL=$(curl -u $NEXUS_USER:$NEXUS_PWD \
  "http://nexus:8081/service/rest/v1/components?repository=maven-releases&name=app" \
  | jq -r '.items[0].assets[0].downloadUrl')

curl -u $NEXUS_USER:$NEXUS_PWD -O "$ARTIFACT_URL"

Component vs Asset

Deux termes importants dans l'interface Nexus :

ComponentAsset
NatureAbstraitPhysique
DéfinitionCe qu'on uploade (concept)Le fichier physique réel
Relation1 component= 1 ou plusieurs assets
ExemplesApplication v1.0app-1.0.jar + app-1.0.pom

Exemple concret :

  • Component : com.exemple:app:1.0
  • Assets : app-1.0.jar, app-1.0.pom, app-1.0-sources.jar

Cleanup Policies (Politiques de nettoyage)

Les repositories grossissent vite. Nexus permet de définir des politiques de nettoyage automatique.

Critères de suppression

Supprimer les artifacts :
├── Plus vieux que 30 jours
├── Pas téléchargés depuis plus de 10 jours
├── En fonction du format de version (snapshots vs releases)
└── Combinaison de critères

Configurer une Cleanup Policy

  1. Administration → Repository → Cleanup Policies
  2. Créer une nouvelle politique avec les critères voulus
  3. Assigner la politique à un repository spécifique

Scheduled Tasks (Tâches planifiées)

Nexus permet aussi de planifier des tâches sur un calendrier configurable :

  • Appliquer les cleanup policies à une heure précise
  • Compacter le blob store
  • Recréer les métadonnées des repositories
  • Export de configuration

Gestion des Utilisateurs et Rôles

Nexus intègre un système de rôles et permissions :

Rôle prédéfiniPermissions
nx-adminAccès complet
nx-anonymousLecture seule (si activé)
Custom rolesÀ définir selon vos besoins

Bonne pratique : créer des utilisateurs dédiés pour le CI/CD (avec permissions limitées en lecture/écriture sur les repositories concernés uniquement).


Intégration complète dans un pipeline DevOps

git push
    │
    ▼
┌────────────────────────────────────────────────────────┐
│                  Pipeline CI/CD (Jenkins)               │
│                                                        │
│  1. git clone      2. mvn test    3. mvn package       │
│                                       │                │
│                                       ▼                │
│                                   mvn deploy           │
│                                   ──────────           │
│                                   push JAR → NEXUS     │
└────────────────────────────────────────────────────────┘
                                           │
                                           ▼
                                       NEXUS
                                    (maven-releases)
                                           │
                                           ▼
                          Serveur de production
                          curl download depuis NEXUS
                          java -jar app.jar

À retenir

  • 3 types de repos Nexus : Hosted (interne), Proxy (cache vers public), Group (agrège plusieurs)
  • Formats : maven2 (Java), npm (JS), docker (images), nuget (.NET), pypi (Python)...
  • Publier avec Maven : mvn deploy (configurer distributionManagement + credentials)
  • Publier avec Gradle : plugin maven-publish + gradle publish
  • REST API : curl -u user:pwd GET /service/rest/v1/repositories — toujours consulter la doc
  • Component = concept abstrait de ce qu'on uploade ; Asset = le fichier physique
  • Cleanup Policies : supprimer automatiquement les artifacts vieux ou inutilisés
  • Scheduled Tasks : planifier les cleanups et maintenances sur un calendrier
Précédent
Installer et Configurer Nexus sur un Serveur
Suivant
Introduction aux Containers & Docker
Sur cette page
PrécédentSuivant