您会建议使用什么工具来检测Java包循环依赖关系,知道目标是明确列出检测到的"跨包循环"中涉及的特定类?
我知道classycle和JDepend,但它们都没有列出循环包依赖中涉及的类.度量标准有一个有趣的循环图形表示,但它再次限于包,并且很难在某些时候阅读.
我厌倦了得到一个:
"你在这3个软件包之间有一个软件包循环依赖关系,
你们每个 好运中都有xxx类
找到合适的类并打破这个循环"
你知道任何工具需要额外的步骤来实际解释为什么检测到循环(即'列出所涉及的类')?
Riiight ...时间宣布结果:
@ l7010.de:谢谢你的努力.我会投票给你(当我有足够的代表时),特别是对于'CAP'答案......但是CAP已经死了,不再与我的Eclipse 3.4兼容了.其余的是商业广告,我只看免费软件.
@ daniel6651:谢谢你,但正如所说,只是免费软件(对不起,首先没有提到它).
@izb作为findbugs的常用用户(现在使用最新的1.3.5),我只需点击一下即可接受你的答案......如果你能向我解释一下有什么选项可以激活findbug以检测任何周期.该功能仅在0.8.7版本中提及(查找' 新样式检测器以查找类之间的循环依赖关系 '),我无法测试它.更新:它现在有效,我有一个旧的findbugs配置文件,其中没有激活该选项.我仍然喜欢CAD ;)
答案是......看下面我自己的(第二个)答案
嗯...在测试上面介绍的DepFinder之后,事实证明它很适合快速检测简单的依赖关系,但它不能很好地扩展类的数量...
所以真正的实际答案是: CDA - 类依赖性分析器
它快速,最新,易于使用,并提供类及其循环依赖关系的图形表示.梦想成真 ;)
你必须创建一个工作集,在其中只输入类的目录(.class)(不需要一个完整的类路径)
选项"检测循环依赖 - ALT- C"作为广告工作,不占用100%的CPU几个小时来分析我的468课程.
注意:要刷新工作区,您需要再次打开它(!),以便触发对类的新扫描.
Findbugs可以检测循环类依赖项,也有一个Eclipse插件.
http://findbugs.sourceforge.net/