Maven-Abhängigkeitsdiagramm

Lesezeit: 5 Minuten

Simhors Benutzeravatar
Simhor

Gibt es eine Möglichkeit, ein Maven-Abhängigkeitsdiagramm einer bestimmten Gruppe von Projekten zu erstellen (wenn möglich grafisch), ohne dass auch Abhängigkeiten von Drittanbietern gezeichnet werden? Oder wo ich die Abhängigkeiten abwähle, die mich nicht interessieren?

Ich möchte das Tool/Plugin auf eine Reihe von POM-Dateien verweisen und eine Beschreibung der Abhängigkeiten zwischen diesen Projekten sehen.

  • Wenn Sie Eclipse verwenden, haben Sie eine dependencies Ansicht, auf der Sie Abhängigkeiten grafisch ausschließen können.

    – Arnaud Denoyelle

    1. Juli 2013 um 20:32

  • Diese Ansicht gilt nur für ein bestimmtes Projekt. Ich möchte die Beziehungen zwischen meinen Projekten anzeigen

    – Simhor

    1. Juli 2013 um 20:50 Uhr

  • Hat jemand es versucht? github.com/janssk1/maven-graph-plugin/wiki/Manual?

    – Srikanth Malyala

    2. Okt. 2014 um 9:07

Wenn du benutzt mvn dependency:treekönnen Sie Dateien angeben, die ausgeschlossen oder einbezogen werden sollen -Dexcludes Und -Dincludes. Die Ausgabe ist eine Darstellung der Abhängigkeiten im ASCII-Stil.

Siehe die Dokumente Für mehr Information.

  • Aber das ist nur für ein bestimmtes Projekt, nicht wahr? Ich würde wirklich gerne die Beziehung zwischen meinen Projekten sehen.

    – Simhor

    1. Juli 2013 um 20:36 Uhr

  • Etwas wie das (mvnplugins.fusesource.org/maven/1.0/maven-graph-plugin), aber anscheinend bietet dieser nicht an, sich von Drittanbietern abzumelden

    – Simhor

    1. Juli 2013 um 20:38

  • @Simhor Sie möchten also auf eine Reihe von POM-Dateien verweisen und ein Diagramm der Beziehungen zwischen diesen Projekten sehen?

    – Duncan Jones

    1. Juli 2013 um 20:38

  • Alternativ könnte das Programm einfach die Submodule ableiten, indem es einfach die oberste pom.xml angibt

    – Simhor

    1. Juli 2013 um 20:41

Es gibt genau das, was Sie brauchen, heißt es Pom Explorer.

Die Website finden Sie hier: github.com/ltearno/pom-explorer

Es ist ein Werkzeug zum Arbeiten an einem Diagramm von Maven-Projekten. Als Vorgeschmack kann ich sagen, dass es auf meinem Rechner 4000 pom.xml-Dateien in 4 Sekunden analysiert. Dann stehen über dem analysierten POM-Graphen viele Funktionalitäten zur Verfügung:

  • Abhängigkeitsanalyse (wer hängt vom GAV ab, von welchen GAVs hängt dieser GAV ab, mit Transitivität),
  • Auflösung (POM Explorer weiß, wo definierte Eigenschaften sind, er verwaltet Abhängigkeiten und BOM-Importe),
  • Manipulation (Sie können damit Ihr POM-Diagramm transformieren, sagen wir, wenn Sie möchten, dass viele Projekte eine neue Version einer Abhängigkeit verwenden),
  • Build (Der POM-Explorer analysiert Ihr POM-Diagramm und weiß, in welcher Reihenfolge sie erstellt werden sollen. Dann erstellt er alles! Er kann sogar Ihre Projektverzeichnisse auf Änderungen überwachen.)
  • Exportieren (heute gibt es CSV- und GRAPHML-Exporte),
  • Visualisierung (POM Explorer kann Ihnen eine interaktive, anpassbare 3D-Visualisierung Ihres Projektdiagramms zeigen).

Es befindet sich gerade in der aktiven Entwicklung, also zögern Sie nicht, es auszuprobieren, Fehler zu melden und nach nützlichen Funktionen zu fragen! Auch die Dokumentation ist noch nicht vollständig, also zögern Sie nicht, noch einmal nachzufragen!

Danke

  • Schönes Tool. Können Sie erklären, was getan werden muss, um einfach ein Diagramm der Abhängigkeiten für einen bestimmten Satz von Maven-Projekten zu erhalten? Bisher kann ich den Ordner mit den Projekten analysieren und alle Aufgaben mit pom-explorer auflisten. Was muss ich tun, um ein Diagramm der Abhängigkeiten zwischen diesen Projekten (ohne Drittanbieter) zur weiteren Verarbeitung zu erhalten? Ich möchte nur einfache Diagramme zwischen den Maven-Projekten haben, um zu wissen, wie das Projekt in der richtigen Reihenfolge erstellt wird.

    – Mondschein

    9. Juli 2017 um 6:30 Uhr


  • Du kannst den … benutzen graph export [gav_filter] Befehl zum Exportieren einer Graphml-Datei, die Ihre Projekte darstellt. Und dann können Sie es zum Beispiel mit yEd filtern. Wenn Ihnen der 3D-WebGL-Graph-Befehl (Graph) gefällt, können Sie die angezeigten GAVs direkt in der grafischen Oberfläche filtern. Vielleicht ist es am besten, diese Frage als Dokumentationsproblem zum Github-Projekt zu posten, damit andere Leute davon profitieren können …github.com/ltearno/pom-explorer/issues

    – Arnaud Tournier

    2. August 2017 um 13:16 Uhr

  • Sorry, aber die GUI ist umständlich. Gibt es eine Befehlszeilenmöglichkeit, um das Tool zu verwenden?

    – RoyM

    19. Okt. 2017 um 14:52

  • Die GUI versucht, befehlszeilenähnlich zu sein. Im Moment gibt es keine andere Wahl. Erwarten Sie vielleicht, einen kleinen Befehlszeilen-Wrapper um pom-explorer.jar zu schreiben

    – Arnaud Tournier

    24. Okt. 2017 um 13:42 Uhr

paul_hs Benutzeravatar
paul_h

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

Tut mir gut.

  • Das Beste, was ich bisher versucht habe, aber es wird durch Kompilierungs-/Testabhängigkeiten getäuscht. Eine Abhängigkeit mit dem standardmäßigen Gültigkeitsbereich „Test“, die überschrieben wird, wenn „Kompilieren“ ein Unterprojekt ist, wird nicht berücksichtigt. Einige Abhängigkeiten können mehrmals auftreten.

    – Laurent Caillette

    19. Dezember 2018 um 8:31 Uhr

Ich mag depgraph-maven-plugin Informationen zur Visualisierung von Abhängigkeiten in einem Projekt mit mehreren Modulen finden Sie auch in der vorherigen Antwort.

Um ein aggregiertes Ergebnis im Textformat zu erhalten (z dependency:tree) für Ihre Module verwenden Sie:

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

Die Syntax für Includes ist dieselbe wie bei Maven-Dependency-Plugin enthält.

Es hat viel Eigenschaften, um das Ergebnis/Verhalten anzupassen. Ich bevorzuge es, es zusammen mit zu verwenden graphvizsodass ich das (Standard-)Grafikformat verwenden kann dot und lass es ein schaffen png Datei in der target Ordner:

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

Es gibt auch andere interessante ZielezB an example Ziel ist es, schnell mit den Eigenschaften herumzuspielen.

Sie können verwenden POM2RDF um ein RDF-Diagramm Ihrer Projektabhängigkeiten (und ihrer Abhängigkeiten usw.) zu erstellen, das Sie dann abfragen können, um eine Software-Stückliste zu erhalten, oder das Sie als Abhängigkeitsdiagramm visualisieren können.

Haftungsausschluss: Ich bin der Autor.

1451580cookie-checkMaven-Abhängigkeitsdiagramm

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy