在大型java项目中,您使用什么工具来查找未使用的/死亡的代码?我们的产品已经开发了几年,手动检测不再使用的代码变得非常困难。但是,我们会尽量删除未使用的代码。
对于一般策略/技术(而不是特定工具)的建议也很感激。
编辑:请注意,我们已经使用了代码覆盖工具(Clover, IntelliJ),但这些帮助不大。死代码仍然有单元测试,并显示为已覆盖。我想理想的工具应该是识别那些依赖于它的其他代码很少的代码集群,从而允许手动检查文档。
在大型java项目中,您使用什么工具来查找未使用的/死亡的代码?我们的产品已经开发了几年,手动检测不再使用的代码变得非常困难。但是,我们会尽量删除未使用的代码。
对于一般策略/技术(而不是特定工具)的建议也很感激。
编辑:请注意,我们已经使用了代码覆盖工具(Clover, IntelliJ),但这些帮助不大。死代码仍然有单元测试,并显示为已覆盖。我想理想的工具应该是识别那些依赖于它的其他代码很少的代码集群,从而允许手动检查文档。
当前回答
DCD不是某些IDE的插件,但可以从ant或独立运行。它看起来像一个静态工具,它可以做PMD和FindBugs不能做的事情。我会试试的。
附注:正如下面的评论中提到的,该项目现在存在于GitHub中。
其他回答
有一些工具可以分析代码并提供代码覆盖率数据。这可以让您看到(当代码运行时)调用了多少代码。您可以使用任何这些工具来找出您有多少孤立代码。
Eclipse可以显示/突出显示无法访问的代码。JUnit可以向您显示代码覆盖率,但是您需要进行一些测试,并且必须决定是否缺少相关的测试,或者代码确实没有使用过。
CodePro最近由谷歌和Eclipse项目一起发布。它是免费的,而且非常有效。该插件具有一个/多个入口点的“查找死代码”功能。效果很好。
FindBugs非常适合做这类事情。 PMD (Project Mess Detector)是另一个可以使用的工具。
但是,两者都不能找到工作区中未使用的公共静态方法。如果有人知道这样的工具,那么请让我知道。
Structure101切片透视图将给出与“主”集群没有依赖关系的类或包的“孤儿”或“孤儿组”的列表(和依赖关系图)。