Nexus rend la gestion de depot Maven plus facile
Par hoshams le mercredi 10 septembre 2008, 17:49 - Java - Lien permanent
La première release de Nexus le gestionnaire de dépôt Maven de Sonatype est disponible depuis fin aôut. Nexus est écrit en Java et distribué sous licence GPL. Il appartient à la même gamme de produits que Maven proxy, Apache Archiva ou encore Artifactory.
Basé sur Proximity, Nexus agit bien sûr comme proxy entre l'entreprise et les dépôts publics Maven mais aussi comme destinataire de nos propres artefacts. Il est doté d'une interface utilsateur assez conviviale, basée sur la librairie Javascript Ext JS, qui permet d'administrer l'outil et de gérer les dépôts.
Avec Nexus on peut déployer un artefact via l'interface, rassembler un ensemble de dépôts derrière un seul groupe, visualiser les rapports concernant les déploiements dans un dépôt, s'abonner à un flux RSS pour être prévenu de tout nouveau déploiement d'artefact, etc.
Bref, avec toutes ses fonctionnalités Nexus rend la vie de l'utilisateur Maven un peu plus facile.
Objectif
L'objectif est de présenter rapidement Nexus de Sonatype et de montrer en quelques points comment l'installer, le configurer et l'utiliser.
Introduction
Nexus est un outil open source écrit en Java et distribué sous licence GPL. Il appartient à la même gamme de produits que Maven proxy, Apache Archiva, Dsmp ou encore Artifactory.
Il s'agit d'un gestionnaire de dépôt de référentiels Maven et vise deux principaux objectifs : agir comme une proxy entre l'entreprise et les dépôts publics de Maven mais aussi comme destinataire de vos propres artefacts.
Il propose une interface utilisateur et d'administration assez agréable qui utilise la libraire Javascript Ext JS. Il est possible de le tester en ligne sur http://repository.sonatype.org
Le fait d'utiliser un tel proxy apporte l'avantage essentiel qui est d'accélérer les build en organisant un cache local du référentiel distant. Mais les avantages d'un gestionnaire de repository comme Nexus sont aussi de :
· mieux gérer les snapshots que Nexus tient à jour dans le référentiel local,
· permettre de ne récupérer qu'une seule fois les librairies et leurs dépendances, quelque soit le nombre de développeurs et de builds,
· avoir la possibilité de contrôler les dépendances, de choisir la version de tel ou tel framework utilisé par votre entreprise,
· avoir la possibilité d'inclure ou d'exclure certaines librairies,
· avoir la possibilité de déployer les artefacts depuis l'interface,
· pouvoir suivre l'ajout des artefacts à l'aide de flux RSS,
· etc.
Autre avantage de Nexus c'est son intégration facile avec Eclipse à travers le plugin M2Eclipse du même éditeur Sonatype.
Histoire
Les premières versions de Nexus datent de 2007 lorsque Sonatype a proposé à Tamas Cservenak de développer un gestionnaire de référentiel pour Maven. Tamas était en effet la bonne personne pour aider à développer Nexus car c'est lui qui avait commencé en 2005 à écrire avec succès Proximity. Tamas avait écrit ce proxy pour se prémunir lors des builds des lenteurs des lignes ADSL de son fournisseur d'accès. Que les utilisateurs de Proximity se rassurent, Nexus reprend la totalité du code de ce dernier!!
Après quelques versions candidates, la release 1.0.0 de Nexus est disponible depuis le 22 août.
Quelques bases
Les référentiels :
Nexus gère trois types de référentiels :
· proxy qui regroupe l'image de référentiels distants,
· hosted qui est le référentiel hébergé par Nexus,
· virtual qui est une sorte d'adaptateur depuis et vers différents types de dépôts (actuellement Nexus gère les conversions vers et depuis les dépôts maven 1 et maven 2).
On peut regrouper les référentiels en utilisant la notion de Groups du menu
Administration.
Les utilisateurs :
Nexus gère trois types d'utlisateurs :
· admin qui a le droit de tout faire,
· deployment qui a le droit de lire et déployer dans les référentiels,
· anonymous qui a le droit de recherches et de lecture des référentiels.
On peut créer des utilisateurs et gérer leur profile en utilisant Users, Roles
et Privileges du menu Security.
Installation
Il n'y pas réellement d'installation. Il suffit de télécharger Nexus à l'adresse http://nexus.sonatype.org/downloads/ et de le décompresser dans le répertoire de son choix qu'on désignera par ${nexus_home}. Ce qui est de ce fait "installé", c'est l'application WEB Nexus et le moteur Jetty pour le lancer.
Lancement
Lorsque vous lancez Nexus, c'est un serveur WEB que vous lancez. Il écoute sur le host et le port par défaut localhost:8081. Nexus est lancé via le wrapper natif Tanuki Service Wrapper et tourne dans le container de servlet Jetty.
Pour lancer Nexus, il suffit de lancer le shell correspondant à votre os
dans le répertoire ${nexus_home}/bin/jsw.
Pour commencer
Une fois lancé, Nexus est disponible à l'adresse http://localhost:8081/nexus.
Cliquez sur "Log In" en haut à droite de la page d'accueil pour vous loguer en admin (le mot de passe par défaut c'est admin123).
Page de login avec le compte admin/admin123
Avant de commencer à utiliser Nexus prenez quelques secondes pour :
· changer de mot de passe d'admin depuis le menu d'admin (security/change password),
· positionner les paramètres SMTP permettant de retrouver vos informations de login en cas de perte :
Définir les paramètres du serveur SMTP
· activer l'utlisation d'index distant qui permet à Nexus de travailler sur la base de l'index Lucene de chaque dépôt qui recense l'ensemble des artefacts qu'il propose :
Aciver l'utilisation d'index
Utilisation
Interface anonymous
Nexus propose par défaut un accès anonymous (possibilité qu'on peut bien sûr
supprimer via l'admin). Il suffit donc de se connecter à l'application sur
http://localhost:8081/nexus pour avoir accès aux dépôts en
lecture :
L'interface pour un utilisateur anonymous
Principaux services
Les principaux services proposés par l'interface web de Nexus sont les suivants
:
· Naviguer dans les dépôts et visualiser leur contenu, leur type et status :
Navigation dans un dépôt
Pendant la navigation on peut cliquer droit sur le dépôt pour accéder aux actions possibles. Par exemple possibilité d'uploder directement un artefact dans le dépôt ou bien celle de mise hors de service d'un dépôt.
· Déployer un artefact via l'interface :
Pour ce faire il suffit de cliquer droit sur le dépôt cible et de choisir l'option d'upload
Upload d'un artefact dans un dépôt
Saisir dans le cadre l'emplacement du fichier à uploader ainsi que celui de son fichier POM ou bien saisir directement les attributs (group, version, packaging, ...) et pour finir cliquer sur le bouton upload.
Saisie d'information concernant l'artefact
· Naviguer dans les groupes :
La notion de groupe permet de donner une vision unique de différents types de référentiels via donc un URL unique. Nexus propose par défaut les groupes "Public Repositories" et "Public Snapshot Repositories".
Navigation dans un groupe
· Visualiser les rapports concernant les artefacts des dépôts :
Ceci permet de voir l'état des artefacts mais aussi de pouvoir surveiller les rapports via abonnement aux flux rss. Ce qui est utile par exemple pour que tout le monde soit informé de l'arrivée d'une nouvelle version dans les référentiels Nexus.
Visualiser les rapports et accès aux flux RSS
Configuration Maven
Pour utiliser Nexus comme proxy des dépôts, il faut bien sûr configurer
Maven pour qu'il utlise désormais Nexus plutôt que le dépôt central.
Pour ce faire il faut ajouter dans le fichier settings.xml, les quelques lignes
pour le dépôt public :
<mirrors>
<mirror>
<id>Nexus</id>
<name>Nexus Public
Mirror</name>
<url>http://localhost:8081/nexus/content/groups/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
De ce fait Maven recherche les artefacts dans le dépôt local. Nexus sert ces
artefacts et en cas d'absence de ces derniers il les récupère depuis le dépôt
distant et les positionne dans son cache.
Configuration Nexus
Les différentes possibilités de paramétrage sont regroupés dans les deux
menus Administration et Security accessible par le profile admin.
Les paramétrages possibles sont essentiellement :
· Configurer les paramètres HTTP, SMTP, HTTP Proxy,
· Gérer la sécurité, les utilisateurs du système ainsi que les rôles et privilèges,
· Gestion des groupes et de routing qui permet de filtrer pour un groupe donné les artifacts téléchargés,
· Ordonnancer les taches automatiques de mise à jour de référentiels,
· etc.
Ressources
Le site Nexus : http://nexus.sonatype.org
Télécherger Nexus : http://nexus.sonatype.org/downloads
Tester Nexus en ligne : http://repository.sonatype.org
Un aperçu des gestionnaires : http://maven.apache.org/repository-management.html
