GoLand的“Invalidate Caches and Restart”仅清除项目索引、插件运行时缓存和UI状态配置,不清理Application Support中的SDK/插件设置、日志、GOCACHE或GOMODCACHE;若问题由工具链缓存污染或版本不兼容引发,需同步执行go clean -cache -modcache并手动删除Application Support等完整配置目录。

GoLand 的“系统缓存”不是指操作系统级缓存,而是 JetBrains 自己维护的索引、语法树、符号表、插件状态等本地数据。这些缓存一旦损坏或版本不匹配,就会导致补全卡顿、跳转失效、项目识别为“unlinked”、甚至卡在欢迎页——重启 IDE 本身根本清不掉。
GoLand 自带的「Invalidate Caches and Restart」到底清什么
这个菜单项(Invalidate Caches and Restart)会删掉以下三类内容:
- 项目级索引:
~/Library/Caches/JetBrains/GoLand*/index/下的 AST、符号引用、类型推导结果 - 插件运行时缓存:
~/Library/Caches/JetBrains/GoLand*/plugins/中部分插件生成的临时状态 - UI 布局与编辑器状态:
~/Library/Preferences/JetBrains/GoLand*/options/editor.*.xml等配置快照(但不会删你手动改过的 keymap 或 color scheme)
它不会碰:~/Library/Application Support/JetBrains/GoLand*/(你的设置、插件安装包)、~/Library/Logs/JetBrains/GoLand*/(日志)、go build 缓存($GOCACHE)或模块缓存($GOMODCACHE)。所以如果补全失效是因 Go 工具链缓存污染,点这个没用。
为什么重启后还是加载旧 SDK 或插件
常见现象:卸载重装 GoLand 后,新版本一启动就自动套用旧版的 GOROOT、Go SDK 路径,甚至恢复已禁用的插件。这是因为:
- GoLand 默认复用
~/Library/Application Support/JetBrains/GoLand*目录下的配置快照,包括options/jdk.table.xml和plugins/子目录 - 如果你用 Toolbox 安装,它还会从
~/jetbrains-toolbox/instances/下拉取上一个实例的配置模板 -
which goland返回空,但open -a "GoLand 2026.1.1"仍能启动,说明系统级注册信息(com.jetbrains.goland.plist)未清除
此时必须手动删掉 Application Support 和 Preferences 下对应版本的整个目录,不能只靠「Invalidate」。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
清理 GoLand 系统缓存的完整路径
按顺序执行,漏掉任意一步都可能让问题复发:
- 先退出 GoLand 和 Toolbox(如有)
- 删 IDE 配置主体:
rm -rf ~/Library/Application\ Support/JetBrains/GoLand* - 删缓存与索引:
rm -rf ~/Library/Caches/JetBrains/GoLand* - 删日志和偏好:
rm -rf ~/Library/Logs/JetBrains/GoLand*和rm -rf ~/Library/Preferences/JetBrains/GoLand* - 删系统级残留:
rm -f ~/Library/Preferences/com.jetbrains.goland.plist和rm -rf ~/Library/Saved\ Application\ State/com.jetbrains.goland.savedState - 检查 shell 初始化文件:
grep -n "goland\|GOROOT\|GOPATH" ~/.zshrc ~/.bash_profile 2>/dev/null,删掉残留的导出语句
注意:GoLand* 通配符会匹配所有版本(如 GoLand2025.3、GoLand2026.1.1),不用手动猜名称。
GoLand 启动卡在欢迎页或项目不识别的真正原因
这不是缓存“太大”,而是缓存和当前环境不兼容。典型触发点:
- 升级 GoLand 前用了旧版
gopls(比如 v0.14.x),新版默认要求 v0.15+,但缓存里还存着旧协议的响应结构 - 切换了 Go 版本(如从 1.22 升到 1.26),但
$GOCACHE里混着不同GOOS/GOARCH的 .a 文件,GoLand 调用go list -json时解析失败 - 项目启用了
//go:build标签,但缓存里没刷新 tag 切换后的包依赖图
这时候光清 GoLand 缓存不够,得同步跑:go clean -cache -modcache,再删 GoLand 的 Caches 目录。否则补全依旧断连,IDE 认为你没装 Go。










