Comment générer un graphique de la dépendance entre tous les modules d'un projet Maven (à l'exclusion des bibliothèques tierces comme JUnit, SLF4J, etc.) ? Je n'ai pas trouvé de moyen d'inclure tous les modules dans un graphique en utilisant m2eclipse. Merci.
Réponses
Trop de publicités?Si le Graphique de dépendance de m2eclipse ne répond pas à vos besoins, vous pouvez consulter la fonction Plugin graphique Maven et en particulier son graph:reactor
objectif.
UPDATE : le Graphique de dépendance La fonction était supprimé dans m2eclipse 1.0 . Pour plus d'informations, voir : Éditeur POM de Maven : Graphique de dépendances manquant
Une autre option est le com.github.janssk1 plugin graphique de dépendance maven . Ce plugin produit les dépendances dans un fichier graphml qui peut être ouvert et édité dans un éditeur comme yEd.
Pour générer le fichier graphml :
mvn com.github.janssk1:maven-dependencygraph-plugin:1.0:graph
Ce plugin ne fournit actuellement aucun mécanisme pour exclure les dépendances tierces, AFAICT, mais elles peuvent être supprimées manuellement du graphe en utilisant yEd ou via une feuille de style XSLT qui post-traite les fichiers graphml. Voici une feuille de style simple qui supprimera les dépendances tierces (toute dépendance ne commençant pas par le paquet fourni par le paramètre "internal") :
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:gml="http://graphml.graphdrawing.org/xmlns/graphml"
version="2.0">
<xsl:output method="xml"/>
<xsl:param name="internal"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="gml:node[not(starts-with(@id, $internal))]"/>
<xsl:template match="gml:edge[not(starts-with(@source, $internal)) or not(starts-with(@target, $internal))]"/>
</xsl:stylesheet>
Et l'exécuter via un processeur compatible XSLT 2.0 tel que Saxon :
saxon input.graphml exclude-third-party-deps.xsl internal="my.package" > input-internal.graphml
Consultez également ce projet : https://github.com/roclas/pomParser
Il crée un "graphique" assez cool qui peut être parcouru dans les deux sens (en avant et en arrière). L'idée est très simple, et vous pouvez télécharger et modifier le code très facilement.
Installation du plugin graphique Maven : http://mvnplugins.fusesource.org/maven/1.10/maven-graph-plugin/index.html Nous l'avons configuré de cette façon pour masquer les dépendances de tiers. Tout s'est bien passé.
<profile>
<id>graph</id>
<pluginRepositories>
<pluginRepository>
<id>mvnplugins.fusesource.org</id>
<url>http://mvnplugins.fusesource.org/repo/release</url>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
<build>
<plugins>
<plugin>
<groupId>org.fusesource.mvnplugins</groupId>
<artifactId>maven-graph-plugin</artifactId>
<version>1.10</version>
<configuration>
<hideExternal>true</hideExternal>
</configuration>
</plugin>
</plugins>
</build>
</profile>
N'avez-vous pas ouvert le pom via Eclipse et jeté un coup d'œil sur les dossiers d'onglets du pom.xml où une entrée est nommée "Graphique de dépendance" ? Ah désolé... j'ai oublié quelque chose... Vous pouvez créer un arbre de dépendance via mvn dependency:tree en ligne de commande, mais cela ne produit aucune vue graphique. Une autre meilleure solution pourrait être le Plugin Maven Overview