go list -m 可查看主模块路径;加 -json 输出版本、时间等结构化信息;用 all 列出所有依赖;-versions 查询远程模块版本;结合 -f 与 xargs 分析直接依赖,辅助 go mod graph 解析依赖关系。

在golang中查看模块的详细信息,主要通过 go list 和 go mod 命令实现。这些命令能帮助你了解当前项目依赖的模块、版本、路径以及主模块信息。
查看当前模块的基本信息
运行以下命令可查看当前模块的路径和是否启用Go Modules:
go list -m
该命令输出当前主模块的导入路径,例如:
github.com/yourname/yourproject
查看模块的详细信息(版本、发布时间等)
使用 -m 和 –json 参数可以获取结构化数据:
go list -m –json
立即学习“go语言免费学习笔记(深入)”;
输出包含模块路径、版本(如果有)、替换信息等。若模块未打标签,版本可能是伪版本(如 v0.0.0-20240101000000-abcdef123456)。
查看所有依赖模块
要列出项目依赖的所有模块:
go list -m all
该命令显示从根模块到所有间接依赖的完整列表,每行一个模块,格式为 模块路径 版本。 如果只想看直接依赖:
go list -m -f ‘{{join .Deps “n”}}’ | xargs go list -m 或者更简单的方式是结合分析 import 使用情况,但目前没有原生命令直接输出“仅直接依赖”。
查询远程模块的可用版本
你可以查看某个模块在远程仓库中的所有发布版本:
go list -m -versions github.com/some/module
输出示例:
github.com/some/module v1.0.0 v1.0.1 v1.1.0 v2.0.0
这有助于决定升级或降级版本。
查看特定模块的详细信息
比如你想知道某模块的具体版本和哈希值:
go list -m -json github.com/gorilla/mux
输出为 JSON 格式,包括:
- Path:模块路径
- Version:当前使用的版本
- Time:该版本的提交时间
- Origin:来源信息(Go 1.19+)
- GoMod:本地 go.mod 文件路径
基本上就这些常用方式。通过组合 go list -m 的不同参数,你可以灵活获取模块的各类信息,适合调试依赖问题或审查第三方库。不复杂但容易忽略细节,比如伪版本的含义或 indirect 标记的意义,建议结合 go mod graph 进一步分析依赖关系。