项目里想知道某个间接依赖是被谁带进来的,可以先用 Go 自带的 go mod why。环境:Go 1.18+,在包含 go.mod 的项目根目录执行:
go mod why -m golang.org/x/net
把模块名换成实际要查的依赖,输出会给出从主模块到它的最短引用路径。它回答的是“为什么需要这个模块”,不是当前到底解析成了哪个版本;版本信息可以再看:
go list -m -json golang.org/x/net
遇到安全扫描或想精简依赖时,这样比直接翻完整的 go.mod / go.sum 更容易定位上游。