Voici une micro-documentation sur l'outil dont je parlais dans mes précédents billets, qui produit un diagramme UML à partir d'une analyse des dépendances entre des projets Maven.
Pour télécharger l'outil
En utilisant Maven, avec l'adresse de mon repository :
Ou en prenant directement le JAR : JAR with dependencies.
Pour utiliser l'outil depuis Ant
Pour ne pas trop se prendre la tête, mettre le JAR téléchargé avec les autres bibliothèques de Ant : répertoire $ANT_HOME/lib/. Sinon, il faut renseigner <classpath> dans les <taskdef> ci-dessous.
Le principe ensuite consiste à enchaîner deux tâches :
- concaténation de tous les POMs dans un seul fichier XML (xmlconcatscan)
- analyse de ce fichier et génération d'un diagramme UML (poms2uml)
Voici un exemple :
<project name="umlgen" default="umlgen"><taskdef name="xmlconcatscan"classname="com.avcompris.tools.ant.XMLConcatScanTask"><!-- <classpath> ... </classpath> --></taskdef><taskdef name="poms2uml"classname="com.avcompris.all.uml.ant.Poms2UmlTask"><!-- <classpath> ... </classpath> --></taskdef><target name="umgen"><mkdir dir="target" /><xmlconcatscan destFile="temp.xml"><fileset dir="/home/blabla/workspace"> <!-- workspace location --><include name="*/pom.xml" /></fileset></xmlconcatscan><poms2uml srcFile="temp.xml"destFile="all-poms.uml" /></target></project>
Ce projet Ant scanne le répertoire « /home/blabla/workspace », puis produit un diagramme UML dans le fichier « all-poms.uml ». Ce fichier peut ensuite être ouvert et manipulé avec l'outil StarUML.
Diagramme après nettoyage dans StarUML
Cet exemple est fourni, plus complet, dans le projet Maven avc-commons-all-umldep.
Pour poser une question au support ;-)
Écrire un commentaire dans cet article de blog http://snurl.com/azp1d
Ou par e-mail : david.andriana@free.fr
Pour récupérer les sources en local
Note : les sources sont en UTF-8.
Elles se récupèrent en lecture sur http://svn.avcompris.com/
Faire un checkout, projet par projet :
svn co http://svn.avcompris.com/avc-commons-all-noci/trunk avc-commons-all-nocisvn co http://svn.avcompris.com/avc-commons-all-umldep/trunk avc-commons-all-umldepsvn co http://svn.avcompris.com/avc-commons-databeans/trunk avc-commons-databeanssvn co http://svn.avcompris.com/avc-commons-lang/trunk avc-commons-langsvn co http://svn.avcompris.com/avc-commons-parent/trunk avc-commons-parentsvn co http://svn.avcompris.com/avc-commons-testutil/trunk avc-commons-testutilsvn co http://svn.avcompris.com/avc-plugin-common/trunk avc-plugin-commonsvn co http://svn.avcompris.com/avc-plugin-parent/trunk avc-plugin-parentsvn co http://svn.avcompris.com/avc-tools-ant/trunk avc-tools-antsvn co http://svn.avcompris.com/avc-tools-common/trunk avc-tools-commonsvn co http://svn.avcompris.com/avc-tools-databeans-plugin/trunk avc-tools-databeans-pluginsvn co http://svn.avcompris.com/avc-tools-databeans-plugin-ut/trunk avc-tools-databeans-plugin-ut(12 projets au total)
Ou alors une astuce sous Unix :
- créer des répertoires vides « avc-commons-all-noci », « avc-commons-all-umldep », etc. puis taper la commande suivante :
- for i in `ls`; do svn co http://svn.avcompris.com/$i/trunk $i; done
Pour construire tous les projets avec Maven en ligne de commande, se placer dans le répertoire « avc-commons-all-noci », et taper la commande : mvn install
Pour installer les sources dans son IDE
Pour Eclipse, une fois que tous les projets Maven ont été récupérés en local, se placer dans « avc-commons-all-noci », et taper la commande : mvn eclipse:eclipse
Cela crée les fichiers .project et .classpath attendus par Eclipse.
On peut ensuite importer les projets dans Eclipse.
Pour IDEA : File, Open Project..., et ouvrir avc-commons-all-noci/pom.xml.
Pour lancer l'outil depuis Eclipse
La classe de tests JUnit WorkspaceInsiemeUmlTest dans le projet avc-commons-all-umldep fait justement un test de scan, concaténation et génération d'UML. Il suffit donc de lancer le test JUnit, que ce soit depuis son IDE ou en ligne de commande. Exemple : mvn test
Une fois le test lancé on peut récupérer le fichier « all-poms.uml » dans le répertoire « target », et c'est le même que ci-dessus.
Aucun commentaire:
Enregistrer un commentaire