go mod tidy 是 go 官方推荐的依赖同步工具,它严格基于所有 .go 文件(含 _test.go)的实际 import 语句,自动添加缺失依赖、删除未被直接或间接引用的模块,并同步更新 go.mod 和 go.sum。

Alt+Enter 不能直接添加缺失的依赖包,它只解决“当前文件里已 import 但找不到符号”的问题;真正缺失的模块级依赖(比如 go.mod 里没有却在代码中用了 github.com/gorilla/mux),必须靠 go mod tidy 或手动 go get 补全。
为什么 Alt+Enter 按了没反应或只提示“Add import”
常见错误现象:光标停在 router := mux.NewRouter() 上按 Alt+Enter,弹出菜单只有 “Add import 'github.com/gorilla/mux'”,点了之后报错 Cannot resolve symbol 'mux' —— 这说明该包根本不在本地模块缓存中。
- GoLand 的 import 补全是“语法层”操作:它只往当前文件顶部加
import "github.com/gorilla/mux",不检查这个路径是否真实存在 - 如果
go.mod里没这条依赖,go build会失败,IDE 也会持续标红 - 触发条件是:包名能被 IDE 解析为合法导入路径(比如拼写正确、有公开仓库),但本地
$GOPATH/pkg/mod或vendor/中无对应内容
真正要加依赖,得走 go mod 流程
Alt+Enter 只是起点,后续必须人工介入模块管理。别跳过验证步骤:
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 先确认你已保存所有改动(尤其是刚加的
import行),否则go mod tidy可能漏掉 - 打开 Terminal(
Alt+F12),cd到含go.mod的项目根目录 - 运行
go mod tidy -v:带-v能看到每条finding github.com/gorilla/mux@v1.8.0日志,确认它真下载了 - 如果项目用
//go:build integration等 tag,记得加 tag 再 tidy:go mod tidy -v -tags=integration - 执行后检查
go.mod是否新增了require github.com/gorilla/mux v1.8.0,且go.sum有对应校验行
遇到 “Cannot resolve symbol” 却又没提示 Add import 怎么办
这通常不是缺依赖,而是 GoLand 没加载好模块上下文:
- 检查右下角状态栏是否显示
Go Modules,若显示Go Workspace或空白,说明模块未激活 →File → Settings → Go → Go Modules勾选Enable Go modules integration - 删过
$GOPATH/pkg/mod里的内容?重新运行go mod download或删掉go.mod后再go mod init - 刚 clone 的项目没
go.mod?先在 Terminal 执行go mod init your-project-name,再补 import +go mod tidy - 模块路径和实际 import 路径不一致(比如
module example.com/foo,但代码里写了import "github.com/foo/bar")→ 改go.mod的 module 声明,或统一 import 路径
最易忽略的一点:GoLand 不会自动 reload go.mod 变更。哪怕你手动改了 go.mod 并保存,IDE 仍可能缓存旧状态。此时必须点右上角提示栏的 Load changes,或手动触发 File → Reload project from disk。否则 Alt+Enter 和代码补全都会失效。










