有没有办法在Java项目中生成该项目中任何其他类不再需要的类列表?
这是一个帮助说明情况的图表(我希望你喜欢我的ASCII图,因为我没有足够的代表来使用图像),其中C和B依赖于项目A:
A
/ \
/ \
C B
我通过将代码从B移动到A来开始重构,因此它可以由C和B共享。但是,现在我已经接近完成重构,我想检查是否有任何类我移动到A,现在可以移回到B(A中的类,但A中的任何代码都没有使用)
我可以用一些工具为我生成这样的类列表吗?
答案 0 :(得分:6)
JBoss Tattletale适用于此。我过去曾使用它来弄清楚我们的项目不再需要哪些第三方库,以及了解多个JAR文件中存在的潜在冲突的包/类。
答案 1 :(得分:1)
使用-verbose:class flag启动程序到JVM。将输出重定向到文件。锻炼你的程序 - 运行你的测试或其他什么。 Grep出每个加载的类的名称。在构建输出目录上运行find以生成所有类的列表。比较结果,找到构建输出目录中不在加载类列表中的任何内容。