29

私は最近、JSF で書かれた Web システムのサポートとプログラミングを行いました。コードはややこしくて冗長です。そうです、ドキュメントは存在しません。

システムには 40 以上の jar ライブラリがあり、それらのほとんどは古いバージョンとテストのために冗長です。1 つの jar を削除するには、コードにインポートされていないことを確認する必要があるため、jar インポート パスのコードを検索し (IntelliJ IDE を使用しています)、使用されていないことを確認して削除しました。

ただし、コードをコンパイルした後、テスト中に多数の実行時エラーが発生しました。他の既存のjarで使用されているいくつかのjarを削除したことがわかりました。

問題は、jar を削除する前に、それが別の jar/java クラスで使用されていないことを確認するにはどうすればよいですか?

jar にはコンパイルされたクラスがありますが、コンパイルされたクラスに必要なライブラリのインポート パスがあります。しかし、IntelliJ でそれらを検索することはできません (jar ファイル内を検索しません)。

私が現在行っている唯一の方法は、jar を削除するたびにシステムをテストし、クラッシュできるかどうかを確認することです! テストする機能が非常に多いため、これは簡単な方法ではありません。

多数の Java ファイル/jar を送信できるツールがあり、それらの間の依存関係が表示されることを望みます。

4

6 に答える 6

21

JBoss TattleTale と呼ばれる JBoss プロジェクトから出てきたツールがあったことは知っています。一見の価値があるかもしれません。

http://www.jboss.org/tattletale

于 2009-04-24T16:53:43.010 に答える
6

JDependは、任意の数の JAR やクラス ファイルなどの依存関係を分析します。JDepend がレポートするパッケージをそれらの JAR に関連付けるのは、簡単な追加の手順です。

于 2009-04-24T17:08:55.410 に答える
1

プロジェクトにMavenを使用しないのはなぜですか? これは、依存関係を管理するのに大いに役立ちます。

于 2009-04-24T16:53:16.150 に答える
1

JarAnalyzerも見つけましたが、もうメンテナンスされていないようです。

于 2011-08-17T08:20:05.157 に答える
-1

Jini SDK の ClassDep もあります。

http://java.sun.com/products/jini/2.0/doc/api/com/sun/jini/tool/ClassDep.html

于 2009-04-24T18:15:01.663 に答える