¿Cómo generar un gráfico de la dependencia entre todos los módulos de un proyecto Maven?

¿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.

Si la función Graph de Dependency de m2eclipse no cubre sus necesidades, tal vez eche un vistazo al Plugin de Maven Graph y en particular su graph:reactor objective del graph:reactor .

ACTUALIZACIÓN : la función Gráfico de dependencia se eliminó en m2eclipse 1.0 . Para obtener más información, consulte: Maven POM-Editor: Falta gráfico de dependencia

Otra opción es el plugin de gráfico de dependencia maven com.github.janssk1. 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 

Actualmente, este complemento no proporciona ningún mecanismo para excluir dependencias de terceros, AFAICT, pero se pueden eliminar manualmente del gráfico mediante yEd o mediante una hoja de estilos XSLT que procesa los archivos graphml. Aquí hay una hoja de estilo simple que eliminará las dependencias de terceros (cualquier dependencia que no comience con el paquete provisto por el parámetro “interno”):

 < ?xml version="1.0"?>            

Y ejecútelo 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 

existe exactamente lo que necesita, se llama Pom Explorer .

Puede encontrar el sitio web aquí: github.com/ltearno/pom-explorer

Es una herramienta para trabajar en un gráfico de proyectos maven. Como adelanto puedo decir que en mi máquina analiza 4000 archivos pom.xml en 4 segundos. Luego, se proporcionan muchas funcionalidades por encima del pom gráfico analizado:

  • análisis de dependencia (que depende de GAV, que depende de este GAV, con transitividad),
  • resolución (pom explorer sabe dónde están las propiedades definidas, maneja las dependencias y las importaciones de bom),
  • manipulación (puede usarlo para transformar su pom gráfico, digamos si quiere que muchos proyectos usen una nueva versión de una dependencia),
  • build (pom explorer analiza tu pom gráfico y sabe en qué orden deberían construirse, ¡luego construye todo !, incluso puede ver los directorios de tus 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 errores y solicite características útiles! La documentación aún no está completa, así que ¡no dude en preguntar!

Gracias

Consulte este proyecto también: https://github.com/roclas/pomParser

Crea un “gráfico” muy interesante que se puede navegar en ambos sentidos (hacia adelante y hacia atrás). La idea es muy simple, y puedes descargar y cambiar el código muy fácilmente.

Plugin 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

   graph   mvnplugins.fusesource.org http://mvnplugins.fusesource.org/repo/release  true       org.fusesource.mvnplugins maven-graph-plugin 1.10  true      

¿No has abierto el pom a través de Eclipse y has echado un vistazo a las carpetas de tabs del pom.xml donde una entrada se llama “Gráfico de dependencia” ? 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 complemento Maven Overview

También creé 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 repository, como Nexus o Artifactory.
  • Uno o más grupos para incluir.
  • Un grupo, artefacto y versión.

Emitirá un gráfico que muestra las relaciones entre todos los artefactos que:

  • El artefacto dado depende de.
  • Depende del artefacto dado.
  • Depende de cualquier artefacto del que dependa el artefacto dado.

enter image description here

Se puede usar para:

  • Rápida comprensión del software que está desarrollando 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 =)

Está disponible en GitHub .

Esto podría ser lo suficientemente bueno para algunas personas:

Comando: mvn dependency: tree -Dincludes = com.yourpackage: *