【发布时间】:2010-09-14 19:43:38
【问题描述】:
您使用哪些工具来查找大型 Java 项目中未使用的/死代码?我们的产品已经开发了几年,手动检测不再使用的代码变得非常困难。但是,我们会尽量删除未使用的代码。
对于一般策略/技术(特定工具除外)的建议也很受欢迎。
编辑:请注意,我们已经使用了代码覆盖工具(Clover、IntelliJ),但这些帮助不大。死代码仍然有单元测试,并显示为已覆盖。我想一个理想的工具会识别出几乎没有其他代码依赖于它的代码集群,从而允许手动检查文档。
【问题讨论】:
-
将单元测试保存在单独的源代码树中(无论如何你都应该这样做),并且只在实时树上运行覆盖工具。
-
我将从 IDEA 的 "Unused declaration" inspection 开始,并取消选中 Include test sources。你能澄清一下你说 IDEA 的“帮助不大”是什么意思吗?
-
找到死代码的方法: 1) 没有被任何外部链接。 2) 即使在运行时链接,也没有从外部使用。 3)链接和调用但从未像死变量一样使用。 4) 逻辑上不可达的状态。所以链接,随着时间的推移访问,基于逻辑,访问后使用。
-
使用 IntelliJ Idea 和我的回答:stackoverflow.com/questions/22522013/… :)
-
大卫鼹鼠的回答:见这个回答stackoverflow.com/a/6587932/1579667
标签: java refactoring dead-code