如何在企业Java项目(Java + JSP + Javascript)中检测死代码



有人知道Java EE项目中检测死代码的工具吗?

我已经研究了很多可以很好地处理纯Java项目的工具,但是似乎没有一个工具可以真正处理包含jsp和Javascript文件的项目。例如,检测一个Java方法是否正在使用,因为它是从JSP调用的,或者检测以前用作AJAX请求的某个JSP文件不再从任何Javascript调用。

谢谢。

现实生活中的抽样呢?将JaCoCo代理插件到您的应用程序,运行它并使用它一段时间。如果您进行了全面的功能测试,请运行它们。如果你有一个测试团队,让他们点击你的应用程序。JaCoCo将同时记录所有执行的行(它用于代码覆盖)。

如果有些行在很长一段时间内没有执行(记住你必须触摸你的应用程序中的每一个可能的屏幕、调用、路径和分支),你应该检查它们是否真的死了(或者你只是忘记在这个特定的配置下运行你的应用程序)。

可以理解这是非常脆弱的,但我不认为你会发现任何自动的

我建议使用JVM标志-verbose:class (http://java.dzone.com/articles/how-use-verbose-options-java)。它将启用关于JVM加载的类的日志信息,例如

[Loaded java.lang.Object from C:Program FilesJavajdk1.7.0_04jrelibrt.jar]
[Loaded java.io.Serializable from C:Program FilesJavajdk1.7.0_04jrelibrt.jar]
[Loaded java.lang.Comparable from C:Program FilesJavajdk1.7.0_04jrelibrt.jar]
[Loaded java.lang.CharSequence from C:Program FilesJavajdk1.7.0_04jrelibrt.jar]

如果某个类在很长一段时间内没有被加载,那么它很有可能是未使用的。

当然这个解决方案只会给你未使用的类的信息,但是你不需要使用任何外部库

相关内容

  • 没有找到相关文章

最新更新