JBoss TattleTale, un outil de vérification de dépendances
Par Mohamed Abdennebi le jeudi 12 mars 2009, 13:45 - Java - Lien permanent
Actuellement, j'effectue la migration vers
Maven de quelques applications historiques. La difficulté de cette tâche réside
dans le dépouillement et l'inventaire des fichiers JAR desquels dépend une
application. En effet, on se retrouve face à un amas de fichiers JAR parmi
lesquels se trouvent des doublons (mais avec un nom différent ou une version
différente), des fichiers appartenant au serveur d'applications (par exemple,
servlet.jar ou connector.jar), d’autres qui ne sont plus utilisés par
l'application, et parfois même des fichiers de bibliothèques de tests unitaires
(par exemple junit.jar). Le travail consiste alors à ne garder que les JAR qui
sont réellement utilisés, et d'éliminer avec la plus grande précaution tous les
autres. Il va sans dire qu’attaquer un tel problème à « mains nues » n'est pas
une mince affaire.
C'est en cherchant un outil de vérification de dépendances que je suis tombé sur l'utilitaire « JBoss Tattletale » qui, à ma grande chance, vient de sortir - en version bêta - des laboratoires de JBoss (voir l'annonce sur le Blog de JBoss).
Cet outil permet de vérifier les dépendances entre les fichiers JAR présents dans un même répertoire considéré comme un classpath. Ses fonctionnalités les plus r
emarquables
sont :
C'est en cherchant un outil de vérification de dépendances que je suis tombé sur l'utilitaire « JBoss Tattletale » qui, à ma grande chance, vient de sortir - en version bêta - des laboratoires de JBoss (voir l'annonce sur le Blog de JBoss).
Cet outil permet de vérifier les dépendances entre les fichiers JAR présents dans un même répertoire considéré comme un classpath. Ses fonctionnalités les plus r
emarquables
sont :- Identifier les dépendances entre les fichiers JAR (par exemple, hibernate-3.1.3.jar dépendant de antlr-2.7.6rc1.jar)
- Lister les classes dont dépend un fichier JAR et lister celles qu'il expose.
- Lister les classes dont dépend un JAR, mais qui sont absentes du classpath.
- Lister les classes présentes dans le classepath et les fichiers JAR dans lesquels elles se trouvent
- Alerter si une classe est présente dans plusieurs fichiers JAR.
L'outil s'utilise en ligne de commande et sa prise en main est rapide. Il génère un rapport au format HTML dans lequel on peut naviguer aisément (voir la capture d'écran ci-contre).
Cet outil m'a vraiment aidé à effectuer la
vérification des dépendances lors de la phase préliminaire de migration vers
Maven. Malheureusement, il ne dispose pas (pour l'instant?) de plugin Maven
permettant l'automatisation de cette tâche (de son coté, ANT dispose déjà d'une
tâche tattletale).
Enfin, si vous vous demandez ce que veut dire «tattletale» sa définition se trouve ici. En résumé, «tattletale» est une personne commère qui révèle les secrets. On voit bien que e nom n'a pas été choisi par hasard !
L'outil, qui me semble très prometteur, en
est tout juste à ces débuts. Souhaitons-lui un bel avenir!
Liens utiles :
Liens utiles :
Téléchargement : http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=311046&release_id=665534 (800ko environ)
