2009-04-01 18 views
9

ビルド時に結果パッケージに含まれるライブラリディレクトリに現在JARがたくさんあるJavaプロジェクトがあります。しかし、私はこれらのライブラリのいくつかはプロジェクトで参照されていないことを知っています。Javaプロジェクトで不要な依存関係を取り除くツール

プロジェクト内で参照されていないライブラリを検索できるツールはありますか?その意味で何かがあるはずです。

ところで、Eclipseプラグインはすばらしいでしょう。

編集:ClassDepは唯一の提案だったので、私はこれを選択しました。しかし、私はそれにいくつかの問題を抱えています:this question

+0

優れた質問 - 私はいつもこれを行うツールを望んでいました。そこに1つあるべきだ! –

+0

http://sourceforge.net/project/downloading.php?group_id=147285&use_mirror=freefr&filename=cphelper_1.2.8GA.zipはダウンロードのために働いています – VonC

+0

今夜も明日も共有します:共有ファイルは「アクセス拒否」されています仕事); – VonC

答えて

4

ClassDep(SunのJini開発キット)がこれを行います。

+0

それは素晴らしいようだが、使用するのは簡単ではないようだ。私はそれに関する別の質問を掲示しています。 –

+0

こんにちは、ブライアン。可能であれば、http://stackoverflow.com/questions/745574/classpath-problems-with-jini-classdep-javas-dependency-finder –

+1

上記のClassDepリンクはApache Riverプロジェクトを指しています。それをどのように使用するかについてのヒント。誰でも提案がありますか? –

2

ClassPathHelperあなたに役立つことを確認してください。

Espacially「ではないクラスパスビューの」

Not on Classpath

クラスパス上に存在しない(ただし、現在のプロジェクトの下にある)のジャーのためのこのビューをスキャンします。利用可能なクラスパスではなく、利用可能なパッケージとクラスの基本的なブラウジングを提供します。これは、クラスパスを構築しようとするときに役立ちます。欠けているクラスをすばやくブラウズして、どのJARファイルが含まれているかを確認できます。

+0

私はここであまりにも遊ばなくてはなりません... Eclipseのスクリーンショットを見たとき、私はすぐに「VonC!」と考えました。 –

+0

TssTss ...また、「あなたはスタックオーバーフローをあまりにも多くブラウズしてきたことを知っていますか?質問(http://stackoverflow.com/questions/247342);) – VonC

+0

私はそれをテストしたいが、それをダウンロードすることはできません! http://sourceforge.net/project/showfiles.php?group_id=147285&package_id=162288(利用不可能 - WTF?) –

1

eclipseプラグインではありませんが、私はProGuardの "縮小"機能があなたが探しているものと確信しています。

+0

私はそうは思わない:proguardは、入力ジャーから未使用のクラスを削除することができるが、プロジェクトからライブラリjarを削除しない。 –

7

クラスがClass.forName()経由でロードされ、マニフェストファイルの依存関係として指定されていない場合は注意してください(そのためのDepends-On:属性がありますが、それはこのようなツールを破壊する、それは私がそのようなツールに取り組んだときの私の存在の悩み)。

+0

こんにちは停止問題! –

+0

@Matt 100%あなたが何を意味するのか確かめないでください...あなたは精巧にできますか? – TofuBeer

0

また、インポートしないJARが依存関係の依存関係である必要があるかどうかはわかりません。たとえば、Springを使用している場合、コード内でそれらのクラスをインポートしたり呼び出したりしなくても、独自の依存関係が提供されます。私はProGuardのことを知らない - それはそれらのケースをチェックするのだろうか?

+0

適切な依存関係トラッカーがそれを行います(私はそれをした1998/9に1つ書きました)。 – TofuBeer

1

私はワークスペースから既存のjava projectを取る小さなeclipseプラグインを作成しました。すべてclasspath entryのプロジェクトraw classpathremovesプロジェクトの生のクラスパスとbuilds the projectからです。重大度エラーappear on the projectproblemmarkersがない場合は、プロジェクトのraw classpathからクラスパスエントリを永久に削除します。

私はそのプラグインを共有することはできませんが、上記のAPIへのリンクを使用して自分で実装することはそれほど多くの作業ではありません。

関連する問題