You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

过滤mvn dependency:tree输出 仅保留唯一不重复的依赖库

Maven dependency:tree 输出去重方案

最优原生方案(无需额外过滤)

如果你只需要拿到所有唯一依赖列表,不需要保留树形结构,直接使用Maven官方提供的dependency:list目标即可,它本身就会输出解析后的去重依赖条目,直接执行以下命令即可输出到指定文件:

mvn dependency:list -DoutputFile=unique_dependencies.txt -DappendOutput=false

参数说明:

  • -DoutputFile:指定结果输出的文件路径,执行后内容不会打印到控制台
  • -DappendOutput=false:每次执行覆盖文件内容,避免历史残留数据干扰
  • 可选参数:可追加-DincludeGroupIds=com.xxx、-DexcludeScope=test等参数过滤特定范围的依赖

手动处理dependency:tree原始输出的方案

如果你需要基于dependency:tree的原始输出来做去重处理,可按不同操作系统执行对应命令:

1. Linux / macOS 环境

第一步先导出原始依赖树到文件:

mvn dependency:tree > raw_tree.txt

第二步执行过滤去重命令:

grep '^\[INFO\]' raw_tree.txt | grep -E ' [+|\\-] ' | sed 's/^\[INFO\][ |+\\-]*//' | sort | uniq > unique_dependencies.txt

各环节作用:

  • 过滤仅保留INFO级别的有效输出行,排除构建日志、报错等无关内容
  • 筛选出实际包含依赖条目的行,去掉项目基础信息、构建成功提示等行
  • 用sed删除行首的[INFO]标记和树形连接符号,仅保留纯依赖坐标
  • 排序后用uniq去重,输出到最终文件

2. Windows PowerShell 环境

第一步导出原始依赖树:

mvn dependency:tree | Out-File raw_tree.txt

第二步执行过滤去重:

Get-Content raw_tree.txt | Where-Object { $_ -match '^\[INFO\]\s*[|+\\- ]+.+:.+:.+' } | ForEach-Object { $_ -replace '^\[INFO\]\s*[|+\\- ]*', '' } | Sort-Object | Get-Unique | Out-File unique_dependencies.txt

内容的提问来源于stack exchange,提问作者Reid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:27:00