2013-03-22 7 views
6

javaパッケージ(サブパッケージ、クラス、メソッド、メンバー)のコンテンツ全体が@Depracatedとしてマークされている場合は、多くのファイルを手動で作成できます。javaパッケージのすべてをeclipseで@Depracatedとしてマーク

+0

すべてのサブパッケージのすべてのクラスで十分でしょうか?暗黙のうちに、すべてのメソッドとメンバも非推奨になります。 – Thilo

+0

はいクラスで十分です。しかし、それを自動的に作る方法は? –

+0

わからない。だからこそあなたは私の+1を手に入れました;-) – Thilo

答えて

7

sedを使用すると、カレントディレクトリ以下(Cygwinでテスト済み)のすべてのクラスにマークを付けることができます。目的のフォルダに移動し、実行します:@ŁukaszRzeszotarskiが指摘するように、あなたがこの中に操作を行うことができ

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

EDIT

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

はちょうどこのようにそれを追加するインターフェースをもマークするには検索/置換ツールを使用したEclipse。操作を実行するリソースをマークしてからCtrl + hを押してください。プレスReplace、その後

Search を、そしてこのようにそれを記入:このようにそれを記入

Replace
はすべてやりました!

+0

これは公開クラスでのみ機能することを拒否しようとしていましたが、あなたはパッケージプライベートパッケージのためにそれを必要としません(パッケージの外側に誰も見ないので)。ただし、インターフェイスを追加する必要があります。 – Thilo

+0

これは便利な答えですが、質問の基準を満たしていません(Eclipseでリファクタリングを実行する)。明確にするために答えに言及する価値があるかもしれません。 – seanhodges

+0

@seanhodges:OPは "Eclipseや他のツール"を使って解決策を尋ねました。 – Keppil

2

package-info.javaというファイルを作成して、パッケージを非推奨にしてください。

@Deprecated 
package foo; 

fooを卑下してfoo.barを廃止しません。

Java 7でテスト済み。 Eclipse。

+0

私は同じことを考えました。 JDK 5/eclipseでは動作しません。 –

+0

[https://bugs.eclipse.org/bugs/show_bug.cgi?id=99638]を参照してください –

+0

ああ、私はこれがサポートされているかどうかはわかりませんでした。同情。 – McDowell

関連する問題