依赖项结构矩阵
处理有众多依赖的复杂项目时,很难理解应该在哪里查找问题。 您可能会遇到复杂的关系或循环依赖,这可能会严重影响应用程序的性能和行为。 这就是 DSM 发挥作用的地方。
DSM 代表 依赖项结构矩阵——一种帮助您可视化项目各部分(模块、类等)之间依赖关系并突出信息流的方法。
DSM 分析可以用来查看变更将如何影响项目。 例如,如果需要更改某个类,您可以识别所有的依赖关系,并查看此更改如何在整个项目中传播。
构建依赖矩阵
在主菜单中,前往 。
或者,右键点击 项目 工具窗口中的某项,然后选择 分析依赖矩阵。
在打开的对话框中,选择您想要分析的范围,然后点击 分析。
如果您的项目类文件已过时,分析可能会导致数据不完整或不正确。 为了避免这种情况,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)显示了相反方向的依赖性——在这种情况下为零。
一个简单的记忆规则是——所有依赖项总是从绿色 流向 黄色。
与按字母顺序排序行不同,DSM 视图以一种特殊的方式排序依赖关系:使用最多的类被移动到底部。 在结构良好的项目中,这将在矩阵的左下半部分创建一个三角形。
周期

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