本质是gopls卡住或缓存错乱,需依次执行:killall gopls(或结束gopls.exe)、go clean -modcache、go clean -cache;关闭自动构建与文件监听;若仍转圈,检查go.sum校验失败,运行go mod tidy和go mod verify修复。

GoLand 项目卡在“Loading project”转圈,本质是 gopls 卡住或缓存错乱
不是 GoLand 自己在加载,而是它启动的 gopls(Go 语言服务器)在解析模块、读取 go.mod 或扫描 $GOMODCACHE 时被阻塞。常见于缓存损坏、go.sum 校验失败、或 gopls 正在读一个被其他进程锁住的大缓存目录。此时点 “Cancel” 没用,重启 IDE 也大概率复现。
先停掉 gopls,再清两处关键缓存
别直接删整个 $GOPATH/pkg 或 ~/.cache/go-build —— 容易删错路径或触发 IDE 后台重建冲突。按顺序做这三步:
- 关闭 GoLand,终端执行
killall gopls(macOS/Linux)或任务管理器结束所有gopls.exe(Windows) - 清理模块缓存:
go clean -modcache(安全、幂等,只动$GOMODCACHE) - 清理构建缓存:
go clean -cache(清$GOCACHE,避免 gopls 复用 stale 的 .a 文件)
注意:go clean -modcache 前确认 GO111MODULE=on,否则静默无效;go clean -cache 不需要进项目目录,全局生效。
GoLand 设置里关掉“自动触发分析”的开关
很多转圈是 IDE 在保存后立刻调 go list 或 gopls 扫描,而你刚清完缓存,它又马上往空目录里狂读。必须关掉这些自动行为:
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- Settings → Go → Build Tags & Vendoring → 取消勾选
Build project automatically - Settings → Tools → File Watchers → 关掉所有
go相关 watcher(尤其是go list和go mod graph) - Settings → Go → Language Server → 检查
build.ignore是否包含pkg/、bin/等非源码目录(避免 gopls 白读)
改完设置后,再开 GoLand,首次打开项目会慢几秒——这是正常现象,说明 gopls 正在冷启动重建索引,不是又卡住了。
如果还是转圈,检查 go.sum 和私有模块代理是否一致
转圈常伴随后台日志里反复出现 checksum mismatch 或 failed to load module requirements。这时清缓存没用,问题在声明和实际内容不匹配:
- 运行
go mod verify,看是否报错;报错就说明go.sum里记录的哈希和缓存里文件对不上 - 运行
go list -m all | head -20,观察是否有(incompatible)或missing字样 - 检查
go env GOPROXY,如果切过私有代理(比如从https://goproxy.cn切到自建),旧缓存里可能混着不同来源的同版本模块,go clean -modcache后必须跑一次go mod download补全
最隐蔽的坑:你清了缓存,但 go.sum 还记着旧哈希,gopls 一边读新下载的模块,一边拿旧哈希去校验,死循环卡在校验环节——这种情况必须 go mod tidy + go mod verify 配合使用,而不是再点“Reload project”。










