2013-03-22 5 views
6

Ist es eine Möglichkeit, den gesamten Inhalt des Java-Paket (Subpackages, Klassen, Methoden, Mitglieder) als @Depracated mit Eclipse (vorzugsweise) oder einem anderen Tool, wenn es auch gibt viele Dateien, um es manuell zu machen.Markieren Sie alle von Java-Pakete als @Depraated in Eclipse

+0

Alle Klassen in allen Unterpaketen wären ausreichend, oder? Das macht alle ihre Methoden und Mitglieder implizit auch veraltet. – Thilo

+0

Ja Klassen scheint genug zu sein. Aber wie man es automatisch macht? –

+0

Weiß nicht. Deshalb hast du deine +1 von mir bekommen ;-) – Thilo

Antwort

7

Sie könnten sed verwenden, um alle Klassen im aktuellen Verzeichnis und darunter zu markieren (getestet in Cygwin). Navigieren Sie zum gewünschten Ordner und führen:

for file in $(find . -name *.java); do sed -i 's/\(public class\)/@Deprecated\n\1/g' $file; done 

Um auch markieren Schnittstellen fügen Sie ihn einfach so:

for file in $(find . -name *.java); do sed -i 's/\(\(public class\|interface\)\)/@Deprecated\n\1/g' $file; done 

EDIT

Wie @ ŁukaszRzeszotarski weist darauf hin, können Sie tun dies in Eclipse mit dem Suchen/Ersetzen-Werkzeug. Markieren Sie einfach die Ressourcen, an denen Sie die Vorgänge ausführen möchten, und drücken Sie Ctrl + h. Füllen Sie es aus wie folgt aus:

Search Dann drücken Replace und füllen es aus wie folgt aus:

Replace
Fertig!

+0

Ich würde einwenden, dass dies nur für öffentliche Klassen funktioniert, aber ich denke Sie brauchen es sowieso nicht für paket-private (da niemand außerhalb des Pakets sie sieht). Sie müssen jedoch Schnittstellen hinzufügen. – Thilo

+0

Dies ist eine nützliche Antwort, erfüllt jedoch nicht die Kriterien der Frage (Ausführen des Refactors mit Eclipse). Könnte erwähnen, dass in der Antwort für Klarheit. – seanhodges

+0

@seanhodges: OP hat nach einer Lösung mit "Eclipse oder einem anderen Tool" gefragt, also denke ich, dass dies seinen Anforderungen entspricht. – Keppil

2

Versuchen Sie, eine Datei mit dem Namen package-info.java zu erstellen, und verwerfen Sie das Paket.

@Deprecated 
package foo; 

deprecating foo und foo.bar nicht verbitten.

Getestet auf Java 7; Finsternis.

+0

Ich dachte über das Gleiche nach. Funktioniert nicht in JDK 5/eclipse. –

+0

siehe [https://bugs.eclipse.org/bugs/show_bug.cgi?id=99638] –

+0

Ah, ich war mir nicht sicher, ob dies unterstützt wurde. Eine Schande. – McDowell

Verwandte Themen