2008-10-29 2 views

Antwort

41

ClassPathHelper ist ein guter Anfang.

Es identifiziert automatisch Orphan-Gläser und vieles mehr.

Die einzige Einschränkung ist mit Abhängigkeiten, die nicht in Klassen definiert sind, z. in Abhängigkeits-Injection-Framework-Konfigurationsdateien.

Sie haben auch andere Optionen/Ergänzungen, wie zB:

  • workingfrog "Relief", die sich auf die Fähigkeit, mit realen Objekten zu beschäftigen verlässt sich durch ihre Form der Prüfung, Größe oder relativen Ort im Raum gibt es eine „physische“ Sehen Sie sich Java-Pakete, -Typen und -Felder und ihre Beziehungen an, damit sie einfacher zu handhaben sind.
  • Unnecessary Code Detector: ein Eclipse-PlugIn-Tool, um unnötigen (toten) öffentlichen Java-Code zu finden.
+0

ähnliche Frage mit einer anderen Antwort http://stackoverflow.com/questions/1012298/how-can-i-identify-unnötige-jars-included-in-my-project –

+0

der erste Link @VonC erwähnt scheint bewegt/gebrochen –

+0

@manocha_ak ja, das Relief-Projekt auf Workingfrog ist nicht mehr. Ich habe einen web.archive.org Link zu dieser Site wiederhergestellt. – VonC

26

UCDetector hierfür nicht hilft: Es funktioniert nicht auf JAR-Dateien. Und für classpathHelper, ich könnte herausfinden, eine einfache Möglichkeit, nur um die Waisen JARs (BTW, wenn jemand eine Anleitung dafür, ich bin interessiert).

Also, wenn Sie auch Maven wie ich verwenden, finde ich this great Maven plugin, und ich möchte diese Lösung mit Ihnen teilen. Nur Typ:

mvn dependency:analyze 

Und Sie werden sofort eine Liste von nicht verwendeten JAR-Dateien in Ihren Abhängigkeiten erhalten. Sehr praktisch!

+2

Vielen Dank für den Tipp von 'mvn dependency: analyze'. Es macht die Arbeit auf sehr einfache Weise. Meiner Meinung nach viel einfacher als die Verwendung eines der anderen genannten Tools. –

+1

Beachten Sie, dass 'mvn dependency: analyze' falsche Negative geben kann: Beispielsweise kann keine Abhängigkeit erkannt werden, wenn die abhängige Klasse über' Class.newInstance() 'oder' Constructor.newInstance() 'instanziiert und über eine Schnittstelle manipuliert wird. Dies ist ein häufiges Szenario in Projekten, die ein Abhängigkeitsinjektions-Framework wie Spring verwenden. Aber es ist ein guter Ausgangspunkt. – Pino

0

Ich weiß, dass dies eine alte ist, aber wenn jemand darüber stolpert, macht Eclipse das alleine.

Navigieren Projekt Eigenschaften-> Java-Code Stil-> Clean Up das Eclipse Wählen Sie [Built-in] und es macht folgendes:

  • Veränderung nicht statisch Zugriffe auf statische Member deklarieren Typ mit
  • ändern indirekte Zugriffe auf statische Elemente direkt auf Zugriffe (Zugriffe durch Subtypen)
  • entfernen Sie nicht verwendete Importe
  • Add ‚@Override‘ Anmerkungen
  • fehlt
  • Add '@Override' Anmerkungen zu Implementierungen von Interface Methoden
  • Fehlende '@deprecated' Anmerkungen
  • Entfernen Sie unnötige Würfe
  • Entfernen Sie unnötige '$ NON-NLS $' Tags
+0

Das ist nicht ganz das, was ich gefragt habe. Ich wollte herausfinden, welche Gläser im Projekt enthalten sind, die nicht notwendig sind. Aufräumen macht einen anderen (aber immer noch nützlichen) Job. Prost! – RodeoClown

5

fehlt ich fand ein sehr schnelles und interessantes Werkzeug, um dieses Ziel zu archivieren:

http://tattletale.jboss.org/

einfach das Programm entpacken und ausführen:

java -Xmx512m -jar tattletale.jar ~/myjavaproject/mydistribution output 

Dies wird einen sehr beeindruckenden Bericht mit verschiedenen Punkten (Text von ihrer Website) erzeugen:

  • identifizieren Abhängigkeiten zwischen JAR-Dateien
  • finden Klassen fehlen der classpath
  • Punkt, wenn eine Klasse/Paket in mehreren JAR-Dateien
  • Stelle befindet, wenn die gleiche JAR-Datei in mehreren Standorten befindet
  • Mit einer Liste von dem, was jede JAR-Datei erfordert und bietet
  • die SerialVersionUID einer Klasse Überprüfen
  • ähnliche JAR-Dateien finden, die unterschiedlichen Versionsnummern
  • Suche JAR-Dateien ohne Versionsnummer
  • Finden haben nicht genutzte JAR-Archive
  • Identify versiegelt/signierte JAR-Archive
  • eine Klasse in einer JAR-Datei lokalisieren
  • Get Entfernen Sie der OSGi-Status Ihres Projektes
  • schwarze Liste API-Nutzung
  • und erzeugt die gleichen Berichte für Ihre .WAR und .ear Archive
Verwandte Themen