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

如何列出Go语言go.mod中指定依赖的间接依赖?

如何列出Go模块中指定依赖的间接依赖

要查询Go项目中某一直接依赖所引入的所有间接依赖,有两种实用方法:

方法一:使用go mod graph结合文本过滤

go mod graph会输出项目完整的依赖关系链,每行格式为父模块 子模块@版本,表示父模块依赖子模块。我们可以通过过滤目标模块作为父节点的行,提取出它的所有依赖(包括直接和间接)。

具体步骤:

  1. 先获取目标依赖在项目中的当前版本:
go list -m -f '{{.Version}}' github.com/blang/semver/v4
  1. 结合版本过滤出该依赖的所有下层依赖:
VERSION=$(go list -m -f '{{.Version}}' github.com/blang/semver/v4)
go mod graph | grep "^github.com/blang/semver/v4@$VERSION " | cut -d' ' -f2

执行后会输出该依赖引入的所有间接(及直接)依赖,格式和go.mod中的依赖条目一致。

方法二:使用go list的格式化输出

通过go list -m的自定义格式化参数,可以直接列出目标依赖的直接依赖。如果需要递归获取所有间接依赖,可以结合简单的脚本,但go mod graph的方式更直接高效。

列出目标依赖的直接依赖:

go list -m -f '{{range .Deps}}{{.}}{{"\n"}}{{end}}' github.com/blang/semver/v4

注意事项

  • 如果项目中存在同一依赖的多个版本,务必使用当前项目实际引用的版本进行过滤,避免结果混乱。
  • go mod graph的输出包含完整的依赖树,若需要去重或进一步整理,可以结合sort -u等命令处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 22:23:18