2009-06-09 6 views
9

Ich reformiere gerade eine große Java-Anwendung. Ich habe eines der zentralen (Eclipse) Projekte in etwa 30 einzelne "Komponenten" aufgeteilt, die jedoch immer noch stark voneinander abhängig sind. Um eine bessere Vorstellung davon zu bekommen, was davon abhängt, was ich suche, gibt es eine Möglichkeit, die Kompilierzeitabhängigkeiten grafisch darzustellen.Wie kann ich Jar (nicht Plugin) Abhängigkeiten visualisieren?

Alle Tools, die ich bisher gefunden habe, sind in der Lage, Paket- oder Klassenabhängigkeiten oder die Abhängigkeiten zwischen Eclipse-Plugins grafisch darzustellen, aber was ich mir vorstelle, sollte nur die Klassenpfadeinstellungen für jedes Eclipse-Projekt betrachten und ein gröberes erstellen Grafik von diesem.

Später werde ich dann tiefer gehen, aber gerade jetzt würde das nur bedeuten, dass ich nicht in der Lage wäre, den Wald für alle Bäume zu sehen.

Antwort

3

Structure101 kann Klassen- und Methoden-JAR-Ebenenabhängigkeiten in Jboss 5 visualisieren.

Siehe Screenshot unten oder view it larger.

alt text

+1

die Bildlinks sind tot –

+1

Link behoben, danke für Andrius. –

3

Ein Werkzeug, das meiner Meinung nach tun würde, was Sie wollen, ist Understand. Es ist nicht kostenlos, aber Sie können eine kostenlose Testversion herunterladen, bevor Sie Geld investieren.

8

Auschecken JBoss Tattletale. Es könnte nicht alles tun, was Sie fragen, aber es lohnt sich, es auszuprobieren. Es ist jedoch noch relativ neu.

Das Tool wird Ihnen Berichte, die Sie

  • identifizieren Abhängigkeiten zwischen JAR-Dateien
  • Finden fehlende Klassen aus dem Classpath
  • Punkt, wenn eine Klasse in mehreren JAR-Dateien
  • befindet sich helfen kann
  • Spot, wenn sich dieselbe JAR-Datei an mehreren Speicherorten befindet
  • Mit einer Liste von dem, was jede JAR-Datei erfordert und
  • bereitstellt Stellen Sie sicher, 10
  • die SerialVersionUID einer Klasse
  • Finden Sie ähnliche JAR-Dateien, die unterschiedliche Versionsnummern
  • Suche JAR-Dateien ohne Versionsnummer
  • Suchen Sie eine Klasse in einer JAR-Datei
  • Holen Sie sich das OSGi-Status Ihres Projekts haben
  • schwarz entfernen gelisteten API-Nutzung
0

für den Datensatz (und diese Wissensbasis zu verbessern), fand ich Shrimp sehr hilfreich: http://www.thechiselgroup.org/shrimp

Shrimp-Visualization

Auch Für eine einfache Abhängigkeitsprüfung ist Byecycle einen Versuch wert, aber scheint nicht mehr aktualisiert zu werden: Byecycle

Beide Tools bieten auch Eclipse-Integration.

+0

Shrimp-Projektseite sagt, es wurde versucht. Der Byecycle-Link ist unterbrochen. – s10z

+0

@ s10z eigentlich heute bin ich ziemlich glücklich mit IntelliJs integrierten Diagrammen für (z. B. Klasse und Maven) Abhängigkeiten ... – Gregor

1

Klingt wie ein Anwendungsfall für Degraph. Es analysiert eine Reihe von Klassendateien und Jars und visualisiert die Abhängigkeiten.

Was macht es für Ihren Anwendungsfall geeignet (denke ich) ist die Möglichkeit, beliebige Gruppen von Klassen zu bündeln. So können Sie Ihre Jar-Struktur reproduzieren, Abhängigkeiten sehen, insbesondere zyklische Abhängigkeiten.

Sie können die Gruppen einblenden, um ihre enthaltenen Klassen anzuzeigen, oder sie reduzieren, um die Ansicht zu vereinfachen.

Für einen schnellen Eindruck, was möglich ist, werfen Sie einen Blick auf die Degraph Examples.

Beispiel für Log4j:

Log4J dependencies

+0

Sehr interessant. +1 – VonC

2

JDeps ist bereits im JDK enthalten ist, und zeigt JAR-Abhängigkeiten. Zum Beispiel:

jdeps -R -cp "my\jar\dir\*;my\other\jar\dir\*" my\classes\dir 
Verwandte Themen