使用jdeps分析模块依赖需jdk 9+,命令为jdeps -p mods/ --summary --recursive my.module.name,可重定向输出为文本报告。

使用 jdeps 工具可以静态分析 Java 类或 JAR 文件的依赖关系,尤其在模块化(Java 9+)项目中,能清晰展示模块层级的依赖。要输出模块依赖的文本报告,关键在于启用模块分析模式并指定合适的选项。
确保使用 Java 9 或更高版本
jdeps 的模块依赖分析功能从 Java 9 引入,必须用 JDK 9+ 运行。检查版本:
$ java -version
$ jdeps -version
基本命令:分析模块路径上的模块
若你的应用已打包为模块(如含 module-info.class),且放在模块路径(--module-path 或 -p)上,运行:
$ jdeps --module-path mods/ --modules my.module.name
这会列出 my.module.name 所依赖的其他模块(包括 JDK 内置模块),以树状结构显示,是默认的文本报告形式。
生成更清晰的模块依赖摘要
添加以下常用选项提升可读性与实用性:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
-
--summary:只显示模块间依赖关系(不展开到包/类),适合快速查看拓扑 -
--recursive:递归分析该模块及其所有传递依赖模块 -
--dot-output dot/:生成.dot文件,可用 Graphviz 可视化(虽非纯文本,但常配合使用) -
--multi-release BASE(如需):支持多版本 JAR 中的模块分析
示例(生成简洁模块级依赖摘要):
$ jdeps -p mods/ --summary --recursive my.module.name
分析整个模块路径并导出为文本文件
若想把结果保存为文本报告,直接重定向输出即可:
$ jdeps -p mods/ --summary --recursive java.base my.module.name > deps-report.txt
注意:java.base 显式加入可确保基础模块也被纳入分析范围;输出内容包含模块名、是否在模块路径上、以及它所依赖的模块列表。
不复杂但容易忽略的是:jdeps 默认不扫描类路径(-cp),模块依赖必须通过 --module-path 提供,且目标模块需能被解析(即包含有效的 module-info.class)。否则会报错或退化为传统类依赖分析。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










