依赖结构矩阵
处理具有众多依赖关系的复杂项目,会使您难以确定应在何处查找问题。 您可能会遇到复杂关系或循环依赖关系,这些问题可能会严重影响应用程序性能和行为。 这就是 DSM 发挥作用的地方。
DSM 代表 依赖结构矩阵——一种帮助您可视化项目各部分(模块、类等)之间依赖关系并突出信息流的方法。
DSM 分析可以用来查看变更将如何影响项目。 例如,如果需要更改某个类,您可以识别所有的依赖关系,并查看此更改如何在整个项目中传播。
安装依赖结构矩阵插件
此功能依赖于 依赖结构矩阵 插件,您需要安装并启用它。
按 Ctrl+Alt+S 打开设置,然后选择 。
打开 Marketplace 选项卡,找到 依赖结构矩阵 插件,然后单击 安装 (如有提示,请重启 IDE)。
构建依赖矩阵
在主菜单中,前往 。
或者,在 项目 工具窗口中右键单击某项,然后选择 分析依赖矩阵。
在打开的对话框中,选择您要分析的作用域,然后单击 分析。
如果您的项目类文件已过时,分析可能会导致数据不完整或不正确。 为了避免这种情况,IntelliJ IDEA 提示您在继续进行 DSM 分析之前编译项目。
将打开 DSM 工具窗口,从而使您能够检查依赖关系。 在工具窗口中单击单元格,您可以查看更多详细信息。

DSM 工具窗口以一种特殊的方式排序依赖关系:使用最频繁的类会被移动到底部。
在矩阵上,所有依赖关系总是从绿色到黄色流动:当您选择一行时,绿色标注显示依赖组件,而黄色标注显示所选组件所依赖的组件。 相互依赖关系以红色显示。 不同的色调对应依赖关系的数量。 依赖项越多,对应的单元格就越深。
探索依赖项
您可以限制视图,仅查看选定的依赖项。 与 限制范围 选项相反,仅保留生成选定依赖项的类。
在主菜单中,转到 ,右键单击所需的依赖项,然后选择 探索两者之间的依赖关系。
那些生成这些依赖项的类将在 DSM 工具窗口的新选项卡中打开。
请注意, DSM 工具窗口只有在您 构建矩阵之后才可用。
查找依赖项的用法
您可以打开选定的 dependencies 以进行进一步的源代码分析。
在主菜单中,转到 ,右键单击所需的依赖项,然后选择 查找依赖项的用法。
请注意, DSM 工具窗口只有在您 构建矩阵之后才可用。
限制 DSM 范围
您可以将 DSM 的范围限制为选定的行。 只有这些会保留在新矩阵中。
请选择您要保留的行,然后从上下文菜单中选择 将作用域限制为选区。
有限范围将在 DSM 工具窗口的新选项卡中打开。
DSM 工具窗口
请注意, DSM 工具窗口只有在您 构建矩阵之后才可用。
在此,您可以看到典型的矩阵视图。

行标题表示程序结构。 现在全部已折叠,仅显示模块。 展开后,标头呈树状结构,使您能够展开模块并深入探讨程序包。 * — 将节点组类放入包内。 列标题与相应的行标题相同。 因此,为了节省空间,它们未被显示。 相反,不同的视觉辅助工具用于行标题。
如果选择一行,矩阵将如下所示。

您可以学习以下内容:
选定的行和对应的列会高亮显示,以便可视化行依赖关系。
单元格中的省略号表示
maven-core模块对maven-project模块有许多(多于 99 个)依赖。该列显示所选行的依赖关系 的。
该行显示了与选定行的依赖关系 开。
这意味着
maven-project模块对maven-settings模块有 16 个依赖。不同的色调对应依赖关系的数量。

颜色注释帮助您一目了然地了解行依赖性。
maven-core依赖于maven-project。maven-project依赖于maven-profile。对角线上的短划线对应的是自依赖性,未显示。
您可以选择任意单元格以探索其中指示的依赖关系。

单元格#1已被选中。 这些颜色标注表示 maven-project 有 16 个依赖项 开maven-settings。 对称单元格(单元格 # 2)显示相反方向的依赖关系—在此情况下为 0。
有一个简单的助记规则—所有依赖关系始终从绿色 流向黄色。
与按字母顺序排序行不同,DSM 视图以一种特殊的方式排序依赖关系:使用最多的类被移动到底部。 在结构良好的项目中,这将在矩阵的左下半部分创建一个三角形。
周期

相互依赖关系以红色显示。 这意味着插件和可用性包都是相互依赖的。