Gráfico de dependencia de Maven

5 minutos de lectura

Avatar de usuario de Simhor
Simhor

¿Hay alguna manera de tener un gráfico de dependencia de Maven de un conjunto determinado de proyectos (si es posible, gráfico), sin tener que dibujar dependencias de terceros también? ¿O donde descarto las dependencias que no me interesan?

Me gustaría apuntar la herramienta/complemento a varios archivos POM y ver una descripción de las dependencias entre esos proyectos.

  • Si está utilizando Eclipse, tiene un dependencies vista en la que puede excluir dependencias gráficamente.

    – Arnaud Denoyelle

    01/07/2013 a las 20:32

  • Esta vista es solo para un proyecto dado, me gustaría tener la vista de las relaciones entre mis proyectos

    – Simjor

    01/07/2013 a las 20:50

  • ¿alguien lo intentó? github.com/janssk1/maven-graph-plugin/wiki/Manual?

    – Srikanth Malyala

    2 de octubre de 2014 a las 9:07

Si utiliza mvn dependency:treepuede especificar archivos para excluir o incluir con -Dexcludes y -Dincludes. La salida es una representación de estilo ASCII-art de las dependencias.

Ver el documentos para más información.

  • Pero esto es solo para un proyecto dado, ¿no es así? Realmente me gustaría ver la relación entre mis proyectos.

    – Simjor

    01/07/2013 a las 20:36

  • Algo como esto (mvnplugins.fusesource.org/maven/1.0/maven-graph-plugin), pero aparentemente este no ofrece optar por no participar en terceros.

    – Simjor

    1 de julio de 2013 a las 20:38

  • @Simhor Entonces, ¿quiere señalar una serie de archivos POM y ver un gráfico de las relaciones entre esos proyectos?

    –Duncan Jones

    1 de julio de 2013 a las 20:38

  • Alternativamente, el programa podría simplemente inferir los submódulos, simplemente dando el top pom.xml

    – Simjor

    1 de julio de 2013 a las 20:41

existe exactamente lo que necesitas, se llama Explorador de pompones.

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 sobre el gráfico pom analizado:

  • análisis de dependencia (quién depende de GAV, de qué gavs depende este GAV, con transitividad),
  • resolución (pom explorer sabe dónde están definidas las propiedades, gestiona las dependencias y las importaciones de bom),
  • manipulación (puede usarlo para transformar su gráfico pom, digamos si desea que muchos proyectos usen una nueva versión de una dependencia),
  • build (pom explorer analiza su gráfico pom y sabe en qué orden deben construirse, luego construye todo! Incluso puede ver los directorios de sus proyectos para ver si hay cambios),
  • exportar (hoy hay exportaciones 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, informar errores y solicitar funciones útiles! La documentación tampoco está completa todavía, ¡así que de nuevo no dudes en preguntar!

Gracias

  • Buena herramienta, ¿puede explicar qué se debe hacer para obtener simplemente un gráfico de dependencias para un conjunto determinado de proyectos maven? Hasta ahora puedo analizar la carpeta que contiene el conjunto de proyectos y enumerar todos los gav con pom-explorer. ¿Qué debo hacer para obtener un gráfico de dependencias entre esos proyectos (sin terceros) para su posterior procesamiento? Lo que quiero es tener gráficos simples entre los proyectos maven para saber cómo construir el proyecto en el orden correcto.

    – Iluminado por la luna

    9 de julio de 2017 a las 6:30


  • Puedes usar el graph export [gav_filter] comando para exportar un archivo graphml que representa sus proyectos. Y luego puedes filtrarlo con yEd, por ejemplo. Si le gusta el comando gráfico 3d WebGL (gráfico), puede filtrar los GAV mostrados directamente en la interfaz gráfica. Tal vez sea mejor publicar esta pregunta como un problema de documentación en el proyecto github, para que otras personas puedan beneficiarse…github.com/ltearno/pom-explorer/problemas

    –Arnaud Tournier

    2 de agosto de 2017 a las 13:16

  • Lo siento, pero la interfaz gráfica de usuario es engorrosa. ¿Hay una forma de línea de comando para usar la herramienta?

    – RoyM

    19 oct 2017 a las 14:52

  • La interfaz gráfica de usuario intenta ser como la línea de comandos. Por el momento no hay otra opción. Espere tal vez escribir un pequeño contenedor de línea de comando alrededor de pom-explorer.jar

    –Arnaud Tournier

    24 de octubre de 2017 a las 13:42

avatar de usuario de paul_h
pablo_h

mvn com.github.ferstl:depgraph-maven-plugin:aggregate -Dincludes=com.yourcompany.pkg

Hace bien para mí.

  • Lo mejor que he probado hasta ahora, pero se deja engañar por las dependencias de compilación/prueba. No se tiene en cuenta una dependencia con el alcance de ‘prueba’ de forma predeterminada, anulada como ‘compilar’ es un subproyecto. Algunas dependencias pueden aparecer varias veces.

    -Laurent Caillette

    19 de diciembre de 2018 a las 8:31

Me gusta Complemento depgraph-maven para visualizar las dependencias en un proyecto de varios módulos, consulte también la respuesta anterior.

Para obtener un resultado agregado en formato de texto (como dependency:tree) para sus módulos, utilice:

mvn com.github.ferstl:depgraph-maven-plugin:aggregate -DgraphFormat=text -Dincludes=myGroupId

La sintaxis para include es la misma que con maven-dependency-plugin incluye.

Tiene un montón de propiedades para personalizar el resultado/comportamiento. Prefiero usarlo junto con gráficovizpor lo que puedo usar el formato de gráfico (predeterminado) dot y deja que cree un png archivo en el target carpeta:

mvn com.github.ferstl:depgraph-maven-plugin:aggregate -DcreateImage -Dincludes=myGroupId

También hay otros interesantes objetivospor ejemplo, un example objetivo de jugar rápidamente con las propiedades.

Puedes usar POM2RDF para generar un gráfico RDF de las dependencias de su proyecto (y sus dependencias, etc.) que luego puede consultar para obtener una Lista de materiales del software o visualizar como un gráfico de dependencia.

Descargo de responsabilidad: soy el autor.

¿Ha sido útil esta solución?