在大型java项目中,您使用什么工具来查找未使用的/死亡的代码?我们的产品已经开发了几年,手动检测不再使用的代码变得非常困难。但是,我们会尽量删除未使用的代码。
对于一般策略/技术(而不是特定工具)的建议也很感激。
编辑:请注意,我们已经使用了代码覆盖工具(Clover, IntelliJ),但这些帮助不大。死代码仍然有单元测试,并显示为已覆盖。我想理想的工具应该是识别那些依赖于它的其他代码很少的代码集群,从而允许手动检查文档。
在大型java项目中,您使用什么工具来查找未使用的/死亡的代码?我们的产品已经开发了几年,手动检测不再使用的代码变得非常困难。但是,我们会尽量删除未使用的代码。
对于一般策略/技术(而不是特定工具)的建议也很感激。
编辑:请注意,我们已经使用了代码覆盖工具(Clover, IntelliJ),但这些帮助不大。死代码仍然有单元测试,并显示为已覆盖。我想理想的工具应该是识别那些依赖于它的其他代码很少的代码集群,从而允许手动检查文档。
当前回答
Structure101切片透视图将给出与“主”集群没有依赖关系的类或包的“孤儿”或“孤儿组”的列表(和依赖关系图)。
其他回答
Structure101切片透视图将给出与“主”集群没有依赖关系的类或包的“孤儿”或“孤儿组”的列表(和依赖关系图)。
有一个Java项目-死代码检测器(DCD)。对于源代码,它似乎工作得不太好,但对于.jar文件-它真的很好。另外,您可以通过类和方法进行过滤。
Eclipse可以显示/突出显示无法访问的代码。JUnit可以向您显示代码覆盖率,但是您需要进行一些测试,并且必须决定是否缺少相关的测试,或者代码确实没有使用过。
我们已经开始使用Find Bugs来帮助识别代码库中目标丰富的重构环境中的一些缺陷。我还会考虑结构101来识别代码库架构中过于复杂的地方,这样你就知道真正的沼泽在哪里。
用户覆盖工具,例如EMMA。但它不是静态工具(也就是说,它需要通过回归测试实际运行应用程序,并通过所有可能的错误情况,这是不可能的:))
尽管如此,EMMA还是非常有用的。