Comment générer un graphique de la dépendance entre tous les modules d'un projet Maven (à l'exclusion des bibliothèques tierces telles que JUnit, SLF4J, etc.)? Je ne pouvais pas trouver un moyen d'inclure tous les modules dans un graphique en utilisant m2Eclipse. Merci.
Si la fonction Dependency Graph de m2Eclipse ne répond pas à vos besoins, jetez un coup d'œil au Maven Graph Plugin et en particulier à son graph:reactor
goal.
UPDATE: la fonction Dependency Graph était supprimée dans m2Eclipse 1.0. Pour plus d'informations, voir: Maven POM-Editor: Le graphique de dépendance est manquant
Une autre option est le plugin graphe de dépendance com.github.janssk1 maven . Ce plugin affiche les dépendances dans un fichier graphml qui peut être ouvert et édité dans un éditeur tel que 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 permettant d'exclure des dépendances tierces, AFAICT, mais elles peuvent être supprimées manuellement du graphique à l'aide de yEd ou via une feuille de style XSLT post-traitant 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 exécutez-le via un processeur compatible XSLT 2.0 tel que Saxon:
saxon input.graphml exclude-third-party-deps.xsl internal="my.package" > input-internal.graphml
il existe exactement ce dont vous avez besoin, il s’appelle Pom Explorer.
Vous pouvez trouver le site ici: github.com/ltearno/pom-Explorer
C'est un outil pour travailler sur un graphique de projets Maven. En guise de teaser, je peux dire que sur ma machine, il analyse 4000 fichiers pom.xml en 4 secondes. Ensuite, de nombreuses fonctionnalités sont fournies au-dessus du graphique analysé:
Il est actuellement en développement actif, alors n'hésitez pas, essayez-le, signalez les bugs et demandez des fonctionnalités utiles! La documentation n'est pas encore complète, alors n'hésitez pas à demander!
Merci
Vérifiez également ce projet: https://github.com/roclas/pomParser
Cela crée un "graphe" assez cool qui peut être parcouru dans les deux sens (avant et arrière) ... L'idée est très simple, et vous pouvez télécharger et modifier le code très facilement.
Plugin Maven Graph installé: http://mvnplugins.fusesource.org/maven/1.10/maven-graph-plugin/index.html , configuré de cette manière pour masquer les dépendances de tiers. A bien fonctionné.
<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'as-tu pas ouvert le pom via Eclipse et jeté un coup d'œil sur les onglets du pom.xml où une entrée est nommée "Graphique de dépendance" ? Ah désolé ... quelque chose à surveiller ... Vous pouvez créer un arbre de dépendance via mvn dependency: tree sur la ligne de commande, mais cela ne produit aucune vue graphique. Une autre meilleure solution pourrait être le Plugin Maven Overview
Cela pourrait suffire à certaines personnes:
Commande: mvn dependency: tree -Dincludes = com.yourpackage: *
J'ai aussi créé un outil pour cela. J'ai passé la journée à bidouiller, donc encore très expérimental =) Les tests et les contributions au code sont les bienvenues!
Je l’appelle Visualiseur de dépendances de référentiel Maven . Il ne montre pas seulement les dépendances, mais tous les artefacts impliqués.
Avec cette entrée:
Java -jar build/libs/maven-repository-dependency-visualizer-*-SNAPSHOT.jar \
-r http://repo1.maven.org/maven2 \
-fgs se.bjurr.violations \
-g se.bjurr.violations \
-a violation-comments-to-gitlab-gradle-plugin \
-v 1.9
Il va générer un graphique montrant les relations entre tous les artefacts qui:
Il peut être utilisé pour:
Il est disponible sur GitHub .