如何获取项目中的类列表,该项目中的任何内容都不再需要这些类

时间:2011-03-14 17:03:34

标签: java refactoring dependencies

有没有办法在Java项目中生成该项目中任何其他类不再需要的类列表?

这是一个帮助说明情况的图表(我希望你喜欢我的ASCII图,因为我没有足够的代表来使用图像),其中C和B依赖于项目A:

         A
        / \
       /   \
      C     B

我通过将代码从B移动到A来开始重构,因此它可以由C和B共享。但是,现在我已经接近完成重构,我想检查是否有任何类我移动到A,现在可以移回到B(A中的类,但A中的任何代码都没有使用)

我可以用一些工具为我生成这样的类列表吗?

2 个答案:

答案 0 :(得分:6)

JBoss Tattletale适用于此。我过去曾使用它来弄清楚我们的项目不再需要哪些第三方库,以及了解多个JAR文件中存在的潜在冲突的包/类。

答案 1 :(得分:1)

使用-verbose:class flag启动程序到JVM。将输出重定向到文件。锻炼你的程序 - 运行你的测试或其他什么。 Grep出每个加载的类的名称。在构建输出目录上运行find以生成所有类的列表。比较结果,找到构建输出目录中不在加载类列表中的任何内容。