首页 / 知识
关于类:Java包循环检测:如何找到涉及的特定类?
2023-04-15 07:47:00
Java package cycle detection: how do I find the specific classes involved?
您建议使用哪种工具来检测Java包的循环依赖关系, 我知道classycle和JDepend,但是它们都无法列出循环软件包依赖项中涉及的类。度量标准具有有趣的循环图形表示形式,但它又仅限于软件包,并且有时很难读取。 我很累得到:
您是否知道需要采取额外步骤才能真正向您解释为什么检测到周期的任何工具(即"列出所涉及的类")? Riiight ...现在宣布结果: @ l7010.de:谢谢您的努力。我会投票赞成(当我将有足够的代表时),特别是对于" CAP"答案……但是CAP已死在水中,不再与我的Eclipse 3.4兼容。其余都是商业用途,我只寻找免费软件。 @ daniel6651:谢谢,但是,正如所说的,仅是免费软件(对不起,我们一开始没有提到它)。
@izb是findbugs的经常使用者(现在使用最新的1.3.5),我一键即可接受您的答案...如果您可以向我解释激活findbug来检测任何周期的选项是什么。该功能仅在通过中提到0.8.7版本(请查找"新样式检测器以查找类之间的循环依赖项"),而我无法对其进行测试。 答案是...请参阅下面我自己的(第二个)答案 好吧...在测试了上面介绍的DepFinder之后,事实证明它非常适合快速检测简单的依赖关系,但是它不能随着类的数量而很好地扩展...
因此,实际答案是: 它快速,最新,易于使用,并提供类及其循环依赖项的图形表示。梦想成真 ;)
您必须创建一个工作集,在其中仅输入类的目录(.class)(无需完整的类路径)
Findbugs可以检测循环类依赖关系,并且也具有Eclipse插件。 http://findbugs.sourceforge.net/ Highwheel会检测类和包的周期,并在类/方法/字段级别报告依赖项的来源,以指示关系的类型(继承,组成,方法签名的一部分等)。 它还将大循环分解为可以单独理解/处理的子元素。 输出的是带有嵌入式SVG内容的HTML,需要使用现代浏览器。 我们使用Sonar来检测包装周期。它绘制了一个很好的依赖关系图,并显示了哪个方向错误。您甚至可以导航到使用依赖项的源。 参见http://www.sonarsource.org/fight-back-design-erosion-by-breaking-cycles-with-sonar/ 还有Structure101应该执行此操作。
第一个可能的答案是……不漂亮。但是它确实开始做我所追求的 依赖查找器!下载它,解压缩它。 它不是有史以来最现代或最活跃的项目,但是如果您编辑[Dependency Finder] /bin/DependencyFinder.bat,为其添加DEFAULT_DEPENDENCYFINDER_HOME的路径,设置一个JAVA_HOME,则可以启动它。 然后,单击"提取"按钮(CTRL-E-第一个按钮),输入您的课程路径,然后将其扫描掉。 棘手的部分是完全单击正确的"编程元素"和"关闭"项集,以免被结果中的细节水平所淹没。
然后你去。 每当您看到'<->'时,您就会得到一个很好的循环依赖关系。 (如果您在"关闭"一侧选择"功能",您甚至可以知道是什么功能触发了周期-太棒了。) 我准备测试其他建议。 您可以使用开源工具CAP,它是Eclipse插件。 CAP具有图形化的程序包视图,该视图将向您显示类的行,因此在单击几下(取决于圆的大小)后,您将找到罪魁祸首。 有一些商业工具:Structure101和Lattix可以用于此目的。 层析成像仪是实现此目的的一种工具。这是商业性的,UI很烂:o |
最新内容
相关内容
linux命令行执行工具?
linux命令行执行工具?,工具,系统,网络,分析,工作,服务,状态,信息,电脑,发行,shell编程(掌握Linux命令行工具)1、在开始Shell编程之前,我们需要linux循环命令大全?
linux循环命令大全?,工作,地址,系统,命令,工具,代码,目录,连续,环境,管理,Linux命令大全1、Linux命令大全以下是一些常用的 Linux 命令:ls:列出循环执行linux命令?
循环执行linux命令?,工具,系统,名称,代码,第一,环境,位置,数字,脚本,变量,Linux的shell脚本for循环怎么调用位置变量1、linux shell中的变量一开发linux命令工具?
开发linux命令工具?,系统,工具,环境,状态,平台,设计,数据,电脑,中小企业,标准,Linux界面开发工具有哪些?1、大多数Linux发放版本,自身捆绑了诸linux命令行工具大全?
linux命令行工具大全?,工作,系统,工具,地址,信息,命令,目录,基础,管理,文件,linux常用的命令有哪些linux系统常用操作命令如下:ls:全拼list,功能linux检测硬件的命令?
linux检测硬件的命令?,信息,系统,检测,工具,第一,数据,设备,分析,实时,百度,如何查看linux系统CPU信息cpu信息记录在/proc/cpuinfo中。linux怎linux命令联想工具?
linux命令联想工具?,地址,工作,系统,工具,状态,标准,信息,命令,目录,左下角,Linux:Python编写Linux自定义命令工具首先我们先认识一下cat指令linux命令超时检测?
linux命令超时检测?,时间,网络,检测,系统,地址,状态,电脑,代码,软件,设备,linux定时器超时次数过多之后,再也收不到信号当时钟脉冲到来时,将目linux循环复制命令?
linux循环复制命令?,系统,文件,命令,目录,地址,源文件,文件夹,目标,文件名,路径,linux下怎么把一个文件复制到多个文件夹里可以使用cp命令来实linux下端口检测命令?
linux下端口检测命令?,检测,系统,状态,工具,情况,端口,网络,服务,灵活,信息,linux怎么看端口是否开放可以用nmap工具进行检测端口是否开放。1:nlinux命令工具怎么用?
linux命令工具怎么用?,地址,系统,工作,单位,工具,密码,服务,命令,处分,基础,怎样在Win10中使用Linux命令推荐:win10系统下载中文具体如下:首先,点linux命令行写循环?
linux命令行写循环?,工作,系统,地址,命令,情况,定期,基础,连续,信息,文件,Linux常用基本命令大全介绍linux常用命令:pwd命令该命令的英文解释为