确定传递Java导入的工具?
作者:互联网
是否有某种工具可以指向一组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插件或功能都会很棒.
提前致谢.
编辑希望显示我想要的内容:
我有一个巨大的整体罐,包含许多(基本上)完全不相关的功能.我想把它分成几个更小,更易于管理,更自我连贯的罐子.
不幸的是,我不能简单地通过基于包来分解它,因为许多包本身也不是自相关的.也就是说,例如,有一个“com.acme.utils”包.该软件包中的两件事可能没有任何共同之处,除了它们在某种意义上都是“实用程序”.一个可能是某个特定业务功能的实用程序,另一个可能是TCP / IP实用程序,另一个可能是一组字符串实用程序,另一个可能是一些完全不相关的业务功能.
并且有很多像这样的包.因此,当你从包装的角度来看待进口的传递性时,它们会无限制地滚雪球,因此单片罐中的所有东西或多或少都取决于整体罐中的其他东西.
因此,我首先从类的角度考虑进口的传递性,而不是从包的角度考虑.这样我就能够更容易地确定哪些类需要从现有的包重新组织成新的,更连贯的包,然后在那之后我可以通过包/包来打破单片jar.
解决方法:
我们将声纳用于软件指标. http://www.sonarsource.org/
标签:java,import,code-analysis 来源: https://codeday.me/bug/20190704/1374192.html