goland右键无依赖图需先手动“load project with go modules”并启用模块支持,多模块须分别标记为module root;图表为空则检查go111module=on及go list执行环境;导出仅支持截图或复制到剪贴板。

GoLand 里右键点不出依赖图?先确认模块是否被正确识别
GoLand 不会自动把有 go.mod 的目录当作模块项目处理,尤其从 GOPATH 迁移或新建空项目时。右键项目根目录看不到 Show Dependencies Diagram,大概率是 IDE 没加载为 Go Modules 项目。
必须手动触发:右键项目根目录 → “Load project with Go Modules”(注意不是 “Reload project”)。然后进 Settings → Go → Go Modules,确认 Enable Go Modules integration 已勾选。
多模块项目(比如含 ./api/go.mod 和 ./cli/go.mod)要分别标记:对每个子模块目录右键 → “Mark Directory as → Go Modules Root”。否则只显示主模块的依赖,其他模块的 import 关系压根不参与渲染。
图表为空或只显示标准库?检查构建上下文和环境变量
依赖图底层调用的是 go list -json -deps,任何导致该命令失败的因素都会让图变空。最常见的是 GO111MODULE=on 在 GoLand Terminal 里没生效 —— 它默认不继承 shell 的环境变量。
解决方法:
- 在
Settings → Tools → Terminal中勾选Shell integration - 或手动在 GoLand Terminal 执行:
go env -w GO111MODULE=on - 运行
go list -m all验证是否输出正常;若报no required module provides package,说明模块声明或路径有误 - 图表默认只展示当前编辑器打开的文件所 import 的包链。想看整个模块的依赖,得先打开一个
.go文件,再右键 →Show Dependencies Diagram
如果用了 //go:build ignore 或构建约束未命中,对应包不会出现在图中 —— 图表反映的是「当前构建配置下有效」的依赖,不是静态声明。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
导出依赖图只能截图?别指望菜单里有 Export
GoLand **没有** “Export as PNG/SVG” 菜单项。所谓“导出”,只有两种实操路径:
一是右键图表 → Copy Diagram to Clipboard,然后粘贴到绘图软件里保存;二是用系统截图快捷键(如 Windows 的 Ctrl+PrintScreen),再裁剪。
如果图太大、文字糊成一片,点击图表右上角齿轮图标,关闭 Show standard library packages —— 标准库节点常占图中 70% 以上,关掉后可读性大幅提升。大型项目建议同时开启 Group by vendor,把第三方依赖聚合成组节点。
想看真实 import 关系?别只信 Modules 图表
GoLand 的 Modules 图表本质是 go list -deps 的可视化,它反映的是「当前构建配置下实际参与编译的包」,但不等于源码里所有 import 语句。比如某个包被 _ 导入、或只在测试文件里引用,而你没打开那个测试文件,图里就不会出现。
更可靠的包级依赖分析,得用命令行:
- 查某个包被谁 import:
go list -f '{{.ImportPath}} {{.Deps}}' ./... | grep 'github.com/sirupsen/logrus' - 生成模块级有向图(需 Graphviz):
go mod graph | sed 's/ / -> /' | sed 's/@[^ ]*//g' | sed 's/^/"/; s/$/"/; s/ -> /" -> "/' | sed '1i digraph G { node [shape=box];' | sed '$a }' | dot -Tpng -o deps.png -
go mod graph不处理replace,图中仍显示原始模块路径,容易误判本地替换是否生效
真正复杂的地方在于:Modules 图表、go mod graph、go list -deps 三者反映的是不同层次的依赖关系,混用却不加区分,是多数人画错图、删错依赖的根本原因。










