Cómo generar un gráfico de la dependencia entre todos los módulos de un proyecto Maven (excluyendo bibliotecas de terceros como JUnit, SLF4J, etc.)? No pude encontrar una manera de incluir todos los módulos en un gráfico usando m2eclipse. Gracias.¿Cómo generar un gráfico de la dependencia entre todos los módulos de un proyecto Maven?
Respuesta
Si la función gráfico de dependencias de m2eclipse no cubrir sus necesidades, tal vez echar un vistazo a la Maven Graph Plugin y en particular su objetivo graph:reactor
.
ACTUALIZACIÓN: la característica Dependencia Graph era eliminado en m2eclipse 1,0. Para obtener más información, consulte: Maven POM-Editor: Dependency Graph missing
Me gusta el gráfico: reactor, pero no veo ninguna forma de excluir dependencias de terceros. – Raman
Aunque me gusta la respuesta, no veo una forma de excluir las dependencias de terceros del gráfico, como dijo @Raman. ¿Nos falta algo o simplemente no es posible? – Brambo
Además, es demasiado malo el gráfico: reactor no tiene un modo de salida graphml, similar a 'dependency: tree -DoutputType = graphml'. De esta forma, la salida resultante se puede manipular en un editor como yEd. – Raman
¿No has abierto el pom a través de Eclipse y has echado un vistazo a las carpetas de pestañas del pom.xml donde una entrada es el nombre "Dependency Graph"? Ah, lo siento ... supervisar algo ... Puede crear un árbol de dependencias a través de la dependencia mvn: árbol en la línea de comandos, pero esto no produce una vista gráfica. Otra solución mejor podría ser el Maven Overview Plugin
Otra opción es el com.github.janssk1 maven dependency graph plugin. Este complemento envía las dependencias a un archivo graphml que se puede abrir y editar en un editor como yEd.
para generar el archivo GraphML:
mvn com.github.janssk1:maven-dependencygraph-plugin:1.0:graph
Este plugin no ofrece actualmente ningún mecanismo para excluir las dependencias de 3 ª parte, AFAICT, pero se pueden borrar manualmente desde el gráfico usando yEd o por medio de una hoja de estilo XSLT que postprocesa los archivos graphml. Aquí es una hoja de estilo simple que elimina el tercer dependencias partido (cualquier dependencia no comenzando con el paquete proporcionado por el parámetro "interno"):
<?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>
y ejecutarlo a través de un procesador compatible con XSLT 2.0, como Saxon:
saxon input.graphml exclude-third-party-deps.xsl internal="my.package" > input-internal.graphml
Gracias por proporcionar el XSLT. Puede ampliarlo fácilmente para filtrar múltiples nombres de paquetes, codificar por colores, etc., lo que sea. Muy útil cuando regeneras tu gráfica durante el ciclo de desarrollo. – sbk
Intenté usar pero obtengo: No se pudo ejecutar el objetivo com.github.janssk1: maven-dependencygraph-plugin: 1 .2: graph (default-cli) en el proyecto cag-parent: No se puede escribir en el archivo :. ... – aName
@aName Tengo el mismo problema 'No se pudo ejecutar el objetivo com.github.janssk1: maven-dependencygraph-plugin: 1.0: graph (default-cli) en el proyecto email_templates: No se puede escribir en el archivo:/home/acme/acme/module/email_templates/target/email_templates-42.1.0-SNAPSHOT-deps.graphml (No existe ese archivo o directorio) ' –
Pedido este proyecto también: https://github.com/roclas/pomParser
se crea un "gráfico" muy bueno que se puede navegar en ambas direcciones (hacia delante y hacia atrás). La idea es muy simple, y puede descargar y cambiar el código muy fácilmente.
Muchas gracias. Es una herramienta realmente buena. –
Pensé que el gráfico también sería gráfico, pero parece que el "gráfico" resultante es puramente textural con enlaces a las dependencias. – snap
Plugin de Maven Graph instalado: http://mvnplugins.fusesource.org/maven/1.10/maven-graph-plugin/index.html, configurado de esta manera para ocultar dependencias de terceros. Funcionó bien
<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>
existe exactamente lo que necesita, se le llama Pom Explorador.
puede encontrar la página web aquí: github.com/ltearno/pom-explorer
Es una herramienta para trabajar en un gráfico de proyectos de Maven. Como adelanto puedo decir que en mi máquina analiza 4000 archivos pom.xml en 4 segundos.Entonces muchas funcionalidades se proporcionan encima del gráfico pom analizado:
- análisis de la dependencia (que depende de GAV, que Gavs este GAV depende, con transitividad),
- resolución (explorador pom sabe propiedades que se definen, se gestiona las dependencias y las importaciones BOM),
- manipulación (se puede utilizar para transformarle gráfico del pom, digamos que si quieres muchos proyectos para utilizar una nueva versión de una dependencia),
- acumulación (explorador pom analiza el gráfico del pom y sabe en qué orden deberían construirse, ¡entonces construye todo! Incluso puede ver sus directorios de proyectos para el cambio),
- exportando (hoy hay exportaciones de CSV y GRAPHML),
- visualización (pom explorer puede mostrarle una visualización interactiva 3D personalizable del gráfico de sus proyectos).
Está en desarrollo activo en este momento, así que no dude en probarlo, ¡informe de errores y solicite características útiles! La documentación aún no está completa, así que ¡no dude en preguntar!
Gracias
gracias por esta información, lo intentaré –
Elegante pero no funciona. "ERROR GRANDE RPC" –
También he creado una herramienta para esto. Pasé el día pirateando así que todavía muy experimental =) ¡Las pruebas y contribuciones de código son bienvenidas!
Lo llamo Maven Repository Dependency Visualizer. No solo muestra dependencias, sino todos los artefactos involucrados.
Con esta entrada:
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
- Un repositorio, como Nexus o Artifactory.
- Uno o más grupos para incluir.
- Un grupo, artefacto y versión.
Se dará salida a un gráfico que muestra las relaciones entre todos los artefactos que:
- El artefacto dado depende.
- Depende del artefacto dado.
- Depende de cualquier artefacto del que dependa el artefacto dado.
Se puede utilizar para:
- comprensión rápida del software está siendo desarrollado por una organización.
- Determine cómo se deben diseñar las tuberías de entrega.
- Encuentra dependencias extrañas entre artefactos.
- y mucho más) =
- 1. Dependencia de prueba de Maven en proyecto de varios módulos
- 2. ¿Cómo generar un gráfico de dependencia por clase solo para un proyecto?
- 3. En un proyecto de varios módulos Maven, ¿cómo puedo desactivar un complemento en un elemento secundario?
- 4. Maven POM-Editor: Falta gráfico de dependencia
- 5. Un diseño para un proyecto maven con una dependencia parcheada
- 6. Lanzamiento de un proyecto maven de varios módulos con Git
- 7. Maven proyecto de varios módulos y Jenkins
- 8. Ignora un módulo durante la construcción de prueba maven para el proyecto maven de varios módulos
- 9. JavaRebel con un proyecto empresarial de múltiples módulos en Maven
- 10. Creación de un archivo de todos los jar y jar fuente para un proyecto de varios módulos
- 11. Maven: Cómo usar embarcadero: ejecutar en un proyecto Maven de varios módulos, sin necesidad de instalar
- 12. ¿Cómo tenedor correctamente un proyecto de maven?
- 13. Maven - ¿Cómo construir varios proyectos Maven independiente de un proyecto
- 14. ¿Cómo puedo hacer que mis subproyectos hereden versiones de dependencia del superproyecto en un proyecto Maven de varios módulos?
- 15. cómo compartir un archivo de filtro entre los módulos maven2?
- 16. Hacer que el proyecto matriz maven pruebe todos los módulos antes de implementar cualquiera de ellos
- 17. ¿Cómo generar un gráfico de dependencia de programa para el programa C?
- 18. Complemento de cobertura de Maven: un informe para el proyecto de varios módulos
- 19. Dependencia Inyección a los módulos
- 20. cómo marcar el tiempo (perfil) objetivos de maven en un proyecto de varios módulos
- 21. Importar todos los módulos en un directorio
- 22. Requerir dependencia de otra dependencia en los módulos de nodo
- 23. Recursos de copia de Maven en proyecto de varios módulos
- 24. Cómo generar un gráfico de llamadas Java
- 25. proyecto Maven con dependencia nativa y la copia de archivos
- 26. ¿Cómo encontrar dependencias innecesarias en un proyecto múltiple de maven?
- 27. Dependencia del proyecto Maven contra JDK versión
- 28. cobertura en el proyecto de varios módulos de maven
- 29. Cómo excluir la dependencia en un plugin Maven?
- 30. Eclipse Indigo con m2e no puede encontrar dependencias maven en un proyecto de varios módulos
En IntelliJ, puede obtener una vista jerárquica de las dependencias haciendo clic derecho en su pom.xml superior y seleccionando ** Analizar ** -> ** Analizar dependencias de módulos **. Agregar como comentario porque funcionó bien sin necesidad de biblioteca o configuración. –
@PatrickM excepto que tiene un [problema abierto] (https://github.com/janssk1/maven-graph-plugin/issues/3) para el soporte del módulo. – OrangeDog