dimanche 28 décembre 2008

Les moteurs de recherche d'artefacts Maven

Voici un résumé des différents moyens pour rechercher les informations d'un artefact Maven.
Un artefact Maven est caractérisé par le triplet GAV (GroupId – ArtifactId – VersionId). Il faut connaître ces trois informations pour ajouter une dépendance dans votre descripteur Maven (pom.xml).

Par exemple, voici la déclaration d'une dépendance:
<dependency>
 <groupId>V</groupId>
 <artifactId>A</artifactId>
 <<version>V</version>
</dependency>

Le repository central officiel de Maven est situé à l'adresse suivante http://repo1.maven.org/maven2/. De nombreux moteurs de recherche existent sur le marché afin d'obtenir les informations des artefacts dans les repository Maven. Chaque moteur a sa particularité de fonctionnement, et ainsi chacun ne renvoie pas des informations identiques pour une même demande d'artefact.

Un premier moteur de recherche connu est celui à l'adresse suivante : http://www.mvnrepository.com/. Celui-ci est déconseillé car il utilise un mirroir du repository central de Maven (http://mirrors.ibiblio.org/pub/mirrors/maven2/) au lieu d'utiliser directement le repository central. Au delà du délai d'attente de synchronisation, ce moteur a été souvent indisponible dans le passé.

Un autre moteur de recherche est celui l'adresse suivante : http://www.mvnindex.org. Il est très efficace et à jour dans ses méta données; je le recommande. De plus, couplé à son plugin Eclipse, ce moteur de recherche devient très pratique. Le seul reproche est qu'une recherche se limite uniquement au repository central.

Mais depuis peu, Sonatype a mis à disposition une instance du gestionnaire de repository Nexus à l'adresse http://repository.sonatype.org/index.html. Il s'agit d'une très bonne initiative que ne propose pas pour l'instant Archiva, le principal challenger de Nexus. L'avantage de cet instance publique est qu'elle agrège plusieurs repositories publiques dont le repository java.net, très utile pour rechercher les artefacts Hudson. Néanmoins, il existe un certain délai pour obtenir les dernières versions des artefacts. Prenons l'exemple de l'artefact "doxygen" de java.net qu'il ne trouve pas. Il ne trouve pas non plus par exemple, la dernière version du plugin clearcase de Hudson en version "0.8.1".

D'autres moteurs existent sur le marché comme l'ancien site "mavenreposearch" (http://maven.ozacc.com/). Il est également déconseillé à cause des données obsolètes renvoyées. Il existe également le moteur de recherche JavaRepo (http://javarepo.xoocode.org/). Partie d'une très bonne initiative puisqu'il peut servir également comme moteur de recherche pour Ivy, il semble ne plus être maintenu.

Et pour finir un nouveau moteur de recherche "mvnbrowser" à l'adresse http://www.mvnbrowser.com/index.html.
Celui-ci est très bien fait. Le premier avantage est la richesse des repositories agrégés. On peut apprécier également la qualité des informations du résultat de la recherche. A ce jour, je conseillerais d'utiliser ce dernier qui est le seule à renvoyer des informations correctes.

Aucun commentaire: