2011-08-10 10 views
12

Java EEプロジェクトでデッドコードを検出するツールを知っている人はいますか?エンタープライズJavaプロジェクト(Java + JSP + Javascript)でデッドコードを検出するにはどうすればよいですか?

私は純粋なJavaプロジェクトのためにも、この操作を行うツールの多くに見てきたが、何も実際に同様のJSPとJavascriptファイルを含めるプロジェクトを扱うように思いません。たとえば、JavaメソッドがJSPから呼び出されているために使用中であることを検出したり、以前にAJAX要求として使用されていたJSPファイルがJavascriptから呼び出されなくなったことを検出したりします。

ありがとうございました。

+2

これにはJavaScriptの作品は/生成する可能性がありますすべての可能なAjaxリクエストを容易に決定することができないので、大部分は不可能です。 –

+0

また、HTMLのフォームがあなたのJSPに提出しているシナリオを持つこともできます。そのため、HTMLも検査する必要がありますが、+1は良い質問です。 – Endophage

答えて

5

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

長時間に渡って実行されなかった行がある場合(アプリケーションで可能なすべての画面、コール、パス、分岐をタッチする必要があることに注意してください)、実際には死んでいないかどうかを調べる必要がありますこの特定の構成でアプリケーションを実行するのを忘れていました)。

当然のことながら、これは非常に壊れやすいですが、私はあなたが自動的に何かを見つけるだろうとは思いません。

+0

私はJaCoCoを知らないが、カバレッジツールを使用することは私にとって唯一の論理的解決策である。しかし、それはあなたにjavascriptファイルのためのデータを与えません。 –

0

Iは、JVMフラグ-verbose:classhttp://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] 

は、それが未使用です。もちろん

このソリューションは、あなたの未使用のクラスについての情報のみを提供しますが、あなたは、任意の外部ライブラリを使用する必要はありません。

関連する問題