是否有某种工具可以指向一组 Java 类,并生成显示每个类的传递导入的输出?
我理解从语言本身的角度来看,导入不是“可传递的”——即,如果 com.acme.X 导入 com.acme.Y,而 com.acme.Y 导入 com.acme.Z,那么并不意味着您可以在 com.acme.X 中引用 com.acme.Z。但这不是我的意思:
相反,我的意思是 com.acme.X 仍然依赖于 com.acme.Z(至少在 X 和 Y 的当前实现下),我想知道这个事实。事实上,我想了解大量类的情况,因此我希望有一种工具可以自动确定它。
独立工具或 Eclipse 插件或功能都很棒。
提前致谢。
EDIT 希望展示我想要的目的:
我有一个巨大的单体 jar,其中包含许多(本质上)完全不相关的功能。我想将它分解成几个更小、更易于管理且更自连的 jar 。
不幸的是,我不能简单地根据包来分解它,因为许多包本身也不是自连贯的。也就是说,例如,有一个“com.acme.utils”包。该包中的两件事可能没有任何共同点,除了它们在某种意义上都是“实用程序”这一事实。一个可能是用于某些特定业务功能的实用程序,另一个可能是 TCP/IP 实用程序,另一个可能是一组字符串实用程序,另一个可能是一些完全不相关的业务功能。
还有一堆这样的包。因此,当您从包的角度来看导入的传递性时,它们会无限制地滚雪球,因此整体 jar 中的所有内容或多或少都依赖于整体 jar 中的其他所有内容。
因此,我想首先从类 的角度而不是包 的角度考虑导入的传递性。这样我应该能够更轻松地确定哪些类需要从现有的包中重组为新的、更连贯的包,然后我可以通过包/包集将整体 jar 分开。
最佳答案
我们将声纳用于软件指标。 http://www.sonarsource.org/
关于java - 确定传递 Java 导入的工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12391044/