小编典典

Java包周期检测:如何找到所涉及的特定类?

java

如果您知道目标是 明确列出检测到的“跨包循环”中涉及的特定类 ,那么您建议使用哪种工具来检测 Java包循环依赖项 ? __

我知道classycleJDepend,但是它们都无法列出循环软件包依赖项中涉及的类。度量标准具有有趣的循环图形表示形式,但它又仅限于软件包,并且有时很难读取。

我很累得到:

“您在这3个软件包之间有一个软件包周期依赖关系
,每个 好运中 都有xxx类,可以
找到合适的类并打破这个周期”

您是否知道采取任何额外步骤来真正向您解释为什么检测到循环的工具(即“列出所涉及的类”)?


Riiight …现在宣布结果:

@ l7010.de:谢谢您的努力。我会投票赞成(当我有足够的代表时),尤其是对于“ CAP”答案……但是CAP已经死了,并且不再与我的Eclipse
3.4兼容。其余都是商业用途,我只寻找免费软件。

@ daniel6651:谢谢,但是,正如所说的,仅是免费软件(对不起,我们一开始没有提到它)。

@izb是findbugs的经常用户(现在使用最新的1.3.5),我一键即可接受您的答案…如果您可以向我解释激活findbug来检测任何周期的选项是什么。此功能仅在通过时提到0.8.7版本(请查找“
New Style探测器以查找类之间的循环依赖项
”),而我无法对其进行测试。更新:现在可以正常工作了,并且我有一个旧的findbugs配置文件,其中该选项未激活。我还是喜欢CAD


阅读 218

收藏
2020-09-18

共2个答案

小编典典

Findbugs可以检测循环类依赖关系,并且也具有Eclipse插件。

http://findbugs.sourceforge.net/

2020-09-18
小编典典

好吧…在测试了上面介绍的DepFinder之后,事实证明它非常适合快速检测简单的依赖关系,但是它并不能很好地随类数扩展…

所以实际答案是: CDA-类依赖分析器

它快速,最新,易于使用,并提供类及其循环依赖项的图形表示。梦想成真 ;)

您必须创建一个工作集,在其中仅输入类的目录(.class)(不需要完整的类路径)选项“检测循环依赖关系ALT--C”用作播发,并且不会占用100%的CPU用几个小时来分析我的468堂课。
注意:要刷新工作区,您需要再次打开它(!),以触发对类的新扫描。

2020-09-18