12

Java EE プロジェクトでデッド コードを検出するツールを知っている人はいますか?

純粋な Java プロジェクトでこれをうまく行うツールをたくさん調べましたが、JSP や Javascript ファイルを含むプロジェクトを実際に処理するツールはないようです。たとえば、Java メソッドが JSP から呼び出されているために使用されていることを検出したり、以前は AJAX 要求として使用されていた JSP ファイルが Javascript から呼び出されなくなったことを検出したりします。

ありがとう。

4

2 に答える 2

5

実際のサンプリングはどうですか?JaCoCoエージェントをアプリケーションにプラグインして実行し、しばらく使用します。完全な機能テストがある場合は、それらを実行します。テスターのチームがある場合は、アプリケーションをクリックしてもらいます。その間、JaCoCo は実行されたすべての行を記録します (コード カバレッジに使用されます)。

一部の行が長時間実行されなかった場合 (アプリケーション内のすべての可能な画面、呼び出し、パス、ブランチに触れる必要があることを思い出してください)、それらが実際に死んでいないかどうかを調べる必要があります (または、単に実行するのを忘れた可能性があります)この特定の構成でのアプリケーション)。

当然のことながら、これは非常に脆弱ですが、自動的に何かが見つかるとは思いません。

于 2011-08-10T20:16:00.067 に答える
0

-verbose:classJVM フラグ( http://java.dzone.com/articles/how-use-verbose-options-java )を使用することを提案します。JVM によってロードされたクラスに関する情報のログ記録を有効にします。

[Loaded java.lang.Object from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]
[Loaded java.io.Serializable from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]
[Loaded java.lang.Comparable from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]
[Loaded java.lang.CharSequence from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar]

一部のクラスが長期間ロードされていない場合、そのクラスは使用されていない可能性が高くなります。

もちろん、このソリューションは未使用のクラスに関する情報のみを提供しますが、外部ライブラリを使用する必要はありません。

于 2014-10-15T09:05:50.597 に答える