Wie überprüft man Abhängigkeiten zwischen Jar-Dateien?
Ich habe vor kurzem eingenommen haben, die Unterstützung und die Programmierung eines web-system, geschrieben in JSF. Der code ist sowas von chaotisch und überflüssig ist, und ja, keine Dokumentation existiert.
Das system hat über 40 jar-Bibliotheken, und die meisten von Ihnen redundant sind aufgrund von alten Versionen und testen. Zum entfernen von jar, ich muss schauen, dass es nicht importiert in den code, so suchte ich den code für die jar-import-Pfad (ich verwende IntelliJ IDE), stellte sicher, dass es nicht verwendet wird, und entfernt es.
Aber nach dem kompilieren des Codes, eine Reihe von run-time-Fehler ist aufgetreten während der Prüfung. Ich habe herausgefunden, dass ich entfernt einigen Gläsern, die durch andere vorhandene Gläser.
Das problem, wie kann ich sicherstellen, dass vor dem entfernen einer jar -, dass es nicht von einer anderen jar/java-Klasse?
Trotz, die Gläser haben kompilierten Klassen, die kompilierten Klassen tun haben die import-Pfad der benötigten Bibliotheken. Aber ich kann nicht suchen Sie mit IntelliJ (nicht die Suche im inneren Gläser-Dateien).
Die einzige Möglichkeit, die ich jetzt mache ist, das system zu testen, jedes mal, wenn ich entfernen Sie ein Glas und sehen, ob ich es zum Absturz! Das ist absolut nicht einfach, aufgrund der großen Anzahl von Funktionen, die getestet werden.
Ich Wünsche mir, dass es ein tool gibt wo ich das Einreichen kann, ist die Anzahl der java-Dateien/Gläser, und es zeigt die Abhängigkeiten zwischen Ihnen.
InformationsquelleAutor der Frage Saleh Al-Zaid | 2009-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß, dass es ein tool kommen aus dem JBoss-Projekt namens JBoss TattleTale, vielleicht lohnt sich ein Blick:
http://www.jboss.org/tattletale
InformationsquelleAutor der Antwort Uri
JDepend analysieren Abhängigkeiten, die für Sie für eine beliebige Anzahl von Gläsern, die class-Dateien, etc. Über die Pakete, die Sie berichtet, diese Gläser sollten eine triviale extra Schritt.
InformationsquelleAutor der Antwort Nick Veys
warum nutzen Sie nicht Maven für Ihr Projekt? das wird Ihnen helfen, eine Menge die Verwaltung von Abhängigkeiten.
InformationsquelleAutor der Antwort silmx
Fand ich auch JarAnalyzeraber es scheint nicht mehr gepflegt wird.
InformationsquelleAutor der Antwort giraff
Gut, es ist das Jahr 2013 nun, so bin ich nicht sicher, ob dieses tool war toll im Jahr 2009.
Benutzte es und fand es hilfreich ist:
Klasse Dependency Analyzer (CDA) (V1.14)
http://www.dependency-analyzer.org/
Dieses tool hat eine Grafik UI (Swing?).
Nach hinzufügen lib jar-Dateien und Java-Klassen, wird es zeigen die Abhängigkeiten in der Klasse/Paket/Behälter(jar) - Ebene.
Es kann auch zeigen, die Angehörigen als gut.
So ist es leicht zu finden, die davon abhängen, Gläser und hing Gläser.
InformationsquelleAutor der Antwort Anderson Mao
Gibt es auch ClassDep von der Jini-SDK.
http://java.sun.com/products/jini/2.0/doc/api/com/sun/jini/tool/ClassDep.html
InformationsquelleAutor der Antwort JRL