2013-03-13 9 views

Antwort

4

Eine Lösung wäre, den Java-Compiler javac von Oracle dazu zu verwenden.

Entfernte Methoden in der API würden zu Compilerfehlern führen, wenn sie verwendet werden, daher sollte es möglich sein, diese durch Kompilieren des Codes zu finden.

Veraltete Methoden können mit der Option javac -deprecation gefunden werden. Mehr zu -deprecation hier: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/javac.html

+0

Unsere Codebasis ist eine riesige Wald von Modulen mit (derzeit) unbekannten Abhängigkeiten und verschiedenen Möglichkeiten, sich selbst zu bauen. Wenn Guava 14 dort rausgeworfen wurde, werden viele Builds kaputt gehen (vielleicht mit Laufzeitfehlern) und können nicht repariert werden, bis ihre Abhängigkeiten behoben sind. –

+0

Also, was ist das Problem? Sie wissen jetzt, welche Abhängigkeiten behoben werden müssen. –

+0

Ich bin mir nicht sicher, ob ich das Problem auch verstehe. Sie müssen nicht "durch Guava 14 da draußen" gehen. Mach einfach die Kompilation lokal, bevor du irgendetwas begehst. – uldall

1

Sie könnten auch PMD verwenden Sourceforge für diese Aufgabe. Es gibt Regeln, die Sie veraltete Methoden finden können

1

Ein Aspekt, den ich glaube javac wird nicht abdecken, ist, wenn Sie den Code von Drittanbietern nicht ändern können, um @Deprecated Annotationen hinzuzufügen. Wenn Sie nur eine Methode zu vermeiden, die als veraltet markiert wurde nicht, können Sie dieses Plugin verwende ich für FindBugs schrieb:

https://github.com/Grundlefleck/FindBugs4Deprecating3rdParty

Es gibt sehr wenig Dokumentation, so dass Sie sich ein wenig erkunden benötigen. Es ermöglicht das Konfigurieren von Methoden und Klassen in einer Eigenschaftendatei. Ich verwende es, um org.junit.Assert.assertThat zu verwerfen.