Tutoriel Maven : déploiement dans Nexus

Maîtriser intégration de Maven avec le gestionnaire de livraisons Nexus. comprenez la valeur ajoutée d’un gestionnaire de livraisons. Comprenez l’architecture de Nexus. Installez Nexus et rendez votre projet prêt pour Nexus. Configurez en particuliers la balise ’mirroir’ afin que vos développeurs recherchent des artifacts sur le serveur Nexus. afin de déployer vos livrables dans Nexus.

Ce tutoriel est un extrait de séances pratiques de la formation MAVEN dispensée par Objis.

Les + objis
- 70% de travaux pratiques
- Clé USB avec tous les outils utilisés + Corrigés TPs
- Bilan pédagogique individuel + conseils
- Nos tutoriaux pour vous initier

Liens utiles

- Guide Mirroirs

Prérequis, outils et versions

- Tutoriel Maven N°1 : Installation Maven

Objectifs

- Comprendre la notion et valeur ajoutée d’un gestionnaire de livraisons
- Installer Nexus
- Intégrer Nexus et Maven

Liens utiles

- + de 100 tutoriaux java/jee Objis
- Tutoriaux et formation MAVEN

Formation Architecture Java

Soyez prêt pour des projets ambitieux : formation architecture Java Objis

PNG - 31.2 ko
programme-detaille-formation-architecture-java-objis

Programme

- Partie 1 : Installation Nexus
- Partie 2 : Mise en oeuvre mirroir dans settings.xml
- Partie 3 : Ajout du distributionManagement dans le pom parent
- Partie 4 : Modification du mot de passe du user deployment
- Partie 5 : Ajout du server dans settings.xml
- Partie 6 : Déploiement via mvn deploy

Durée

- 45min

Contexte

Vous souhaitez déployer vos livrables dans le Repository Manager Nexus

PNG - 68 ko

Partie 1 : Installation Nexus

Voir tutoriel Intégration continue : installation Nexus

— > Lancement de Nexus
— > Accès à l’administration ( admin / admin123 )
— > Visualisation des Repositories Public, Releases et Snapshots

Partie 2 : Mise en oeuvre mirroir dans settings.xml

Regardez le repository Nexus à cette adresse : http://localhost:8081/nexus/content/groups/public/

PNG - 29.6 ko

Celui-ci est pour l’instant vide.

Fichier settings.xml

- Afin de mieux analyser ce qui suit, faîtes un nouveau répertoire de dépôt local, objis-repository, que vous allez renseigner dans la balise localRepository de votre fichier \.m2\settings.xml :

PNG - 9.8 ko
tutoriel-apache-maven-archiva-mirroir-0

- Ajoutez et analysez la configuration suivante dans settings.xml :

 <mirrors>
   ...
   <mirror>
     <id>nexus</id>
     <mirrorOf>*</mirrorOf>
     <url>http://localhost:8081/nexus/content/groups/public/</url>
   </mirror>
   ...
 </mirrors>

- Expliquez.

- Regardez avec l’onglet Effective POM d’eclipse (ou la commande mvn help:effective-pom) les repository par défaut pour récupérer les artifacts et les plugins. Vous pouvez voir que que le site suivant est accédé : http://repo1.maven.org/maven2

- Nous voulons écraser ces valeurs par défaut. Nous allons pour cela utiliser un profil pour agir d’une manière global. Ajoutez et analyser les balises suivantes dans votre settings.xml :

 </profiles>
   ...
   <profile>
     <id>nexus</id>
     <!--Enable snapshots for the built in central repo to direct -->
     <!--all requests to nexus via the mirror -->
     <repositories>
       <repository>
         <id>central</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>central</id>
         <url>http://localhost:8081/nexus/content/groups/public/</url>
         <releases><enabled>true</enabled></releases>
         <snapshots><enabled>true</enabled></snapshots>
       </pluginRepository>
     </pluginRepositories>
   </profile>
   ...
 </profiles>
 ...
 <activeProfiles>
   <!--make the profile active all the time -->
   <activeProfile>nexus</activeProfile>
 </activeProfiles>

- Lancez une commande maven à partir d’un projet : mvn clean package

PNG - 46.7 ko

- Expliquez ce qui se passe. Regardez si votre repo local ( \.m2\objis-repository) est rempli. Regardez aussi à nouveau le contenu de votre repo nexus : http://localhost:8081/nexus/content/groups/public/

Partie 3 : Ajout du distributionManagement dans le pom parent

- Regardez l’écran Nexus suivant :

PNG - 73 ko

- Nous voulons déployer une snapshot de notre projet monappli dans le repository Snapshots. Vous pouvez voir qu’il est pour l’instant vide : http://localhost:8081/nexus/content/repositories/snapshots/

Ajoutez le code suivant dans votre fichier parent pom.xml :

        <distributionManagement>
                <!-- Publish versioned releases here -->
                <repository>
                        <id>nexus</id>
                        <name>My releases</name>
                        <url>http://localhost:8081/nexus/content/repositories/releases/</url>
                </repository>

                <!-- Publish snapshots here -->
                <snapshotRepository>
                        <id>nexus</id>
                        <name>My snapshots</name>
                        <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
                </snapshotRepository>
        </distributionManagement>

Partie 4 : Modification du mot de passe du user deployment

Pour pouvoir deployer dans les repository que nous avons spécifier dans la balise distributionManagement nous allons avoir besoin d’un utilisateur avec des droits spécifiques. Celui par défaut dans nexus s’appel deployment. Nous allons lui donner le mot de passe suivant : deployment

- Dans l’interface web de Nexus allez dans Admin -> menu de gauche -> Users -> clique droit sur le user ‘deployment’ -> Set Password

- Voyez les droits de cet utilisateur dans les onglets Privilege_Trace et Role_Tree.

PNG - 78.5 ko

Partie 5 : Ajout du server dans settings.xml

Pour signaler à Maven l’utilisateur à utiliser pour le déploiement rajoutez ceci dans votre settings.xml :

        <server>
                <!-- this id should match the id of the repo server in pom.xml -->
                <id>nexus</id>
                <username>deployment</username>
                <password>deployment</password>
        </server>

- Il faut bien mettre ici le même id que celui qui se trouve dans les repo spécifiés dans distributionManagement.

Partie 6 : Déploiement via mvn deploy

- lancez la commande mvn deploy et regardez à nouveau le repo de snapshots : http://localhost:8081/nexus/content/repositories/snapshots/

- Vous pouvez voir un nouveau répertoire com dans lequel se trouve les répertoires de notre application :

PNG - 41.9 ko

- Dans l’interface de Nexus vous pouvez aussi naviguer dans ce repository :

PNG - 110.7 ko

Conclusion

Dans ce tutoriel, vous avez mis en oeuvre déploiement de livrables dans Nexus.

Formation Architecture Java

Soyez prêt pour des projets ambitieux : formation architecture Java Objis

PNG - 31.2 ko
programme-detaille-formation-architecture-java-objis