Ich habe ein großes Eclipse-Projekt, in dem es mehrere Klassen gibt, die, obwohl sie nicht mehr überall verwendet werden, nie als @Deprecated markiert wurden.
Wie kann ich all diese leicht finden?
Ich habe ein großes Eclipse-Projekt, in dem es mehrere Klassen gibt, die, obwohl sie nicht mehr überall verwendet werden, nie als @Deprecated markiert wurden.
Wie kann ich all diese leicht finden?
Antworten:
Ich benutze auch gerne UCDetector :
UCDetector (Unecessary Code Detector) ist ein Open Source Eclipse-Plug-In-Tool, mit dem Sie nicht benötigten (toten) öffentlichen Java-Code finden können. Es wird auch versucht, Code endgültig, geschützt oder privat zu machen.
Bonus: Es können auch zyklische Abhängigkeiten zwischen Klassen gefunden werden
(auch eine Reihe anderer Tools - einschließlich Findbugs - wissen, wie das geht)
Vorsichtsmaßnahme : Cid erwähnt in den Kommentaren :
UCDetector funktioniert nicht, wenn Schnittstellenimplementierungen vorhanden sind, die nur zur Laufzeit bekannt sind.
Die Implementierungsklassen werden fälschlicherweise als nicht verwendet markiert.
Update 2017: Die statische Code-Analyse hat sich in 8 Jahren erheblich weiterentwickelt.
Mit SonarLint for Eclipse können Sie das neueste SonarJava 4.6-Plugin verwenden , um Ihren Code zu analysieren.
Es wird toten Code finden .
Mit ProGuard kann ein Bericht über nicht verwendete Klassen / Methoden gedruckt werden. Es ist jedoch ein Schmerz, alle abhängigen Gläser zu liefern.
Diese Optionen listen nicht verwendete Klassen, Felder und Methoden in der Anwendung mypackage.MyApplication auf:
-injars in.jar
-libraryjars <java.home>/lib/rt.jar
-dontoptimize
-dontobfuscate
-dontpreverify
-printusage
-keep public class mypackage.MyApplication {
public static void main(java.lang.String[]);
}
Verwenden Sie einfach Analysieren | Inspektionscode mit aktivierter entsprechender Inspektion (nicht verwendete Deklaration unter Deklarationsredundanzgruppe).
Mit IntelliJ 11 CE können Sie jetzt "Analyse | Inspektion nach Namen ausführen ... | Nicht verwendete Deklaration" ausführen.