dependency:tree 是 maven 内置命令,无需额外配置;默认输出 compile 范围依赖树,支持按 scope、includes、excludes 过滤,可导出文本或 graphml 文件,多模块项目需指定 -pl,排查冲突必须加 -dverbose。

不需要额外配置插件,dependency:tree 是 Maven 官方 maven-dependency-plugin 提供的内置目标,开箱即用。
直接运行基础命令查看依赖层级
在项目根目录(含 pom.xml)执行:
-
mvn dependency:tree—— 输出默认 compile 范围的完整依赖树,含 groupId、artifactId、version 和 scope - 输出中
+-表示该依赖还有子依赖,\-表示叶子节点(无进一步传递依赖) - 若依赖被多个路径引入,Maven 默认只保留“最短路径”版本,其余会被省略(需加
-Dverbose查看全部)
按需过滤和聚焦关键依赖
避免信息过载,常用筛选方式:
提供端到端的高端代理设置和使用指导,包括代理类型选择、地区定向、访问配置、API密钥验证和监控。
-
mvn dependency:tree -Dscope=test—— 只显示 test 范围依赖(如 junit、mockito) -
mvn dependency:tree -Dincludes=org.slf4j:slf4j-api—— 精准定位某组件(支持通配符,如org.slf4j:*:jar:1.7.*) -
mvn dependency:tree -Dexcludes=*:logback-classic—— 排除指定 artifactId,快速识别干扰项
导出结果便于分析和协作
控制台输出易滚动丢失,建议保存为文件:
-
mvn dependency:tree -DoutputFile=target/deps.txt—— 生成纯文本,方便 grep 或编辑器搜索 -
mvn dependency:tree -DoutputType=graphml -DoutputFile=deps.graphml—— 导出 GraphML 格式,可用 yEd 或 IntelliJ 插件可视化 - 多模块项目中,加
-pl module-name指定模块,例如:mvn dependency:tree -pl service-api
排查冲突时必须启用详细模式
普通输出会隐藏重复依赖,发现版本不一致问题必须加 -Dverbose:
mvn dependency:tree -Dverbose -Dincludes=com.fasterxml.jackson.core:jackson-databind- 输出中带
[WARNING]的行会标出同一依赖的不同版本及其引入路径(如 A → B → jackson-2.12,C → jackson-2.15) - 结合
-Dverbose和-Dincludes,能快速锁定冲突源头,而非翻遍整个树










