GoLand项目缓存分三层:项目级(.idea目录)、用户级(~/Library/Caches/JetBrains/GoLand202X.X或~/.cache/JetBrains/GoLand202X.X)和Go工具链级($GOCACHE,默认~/Library/Caches/go-build或~/.cache/go-build);批量清理需同步清除这三处,仅用“Invalidate Caches”功能不足以覆盖多窗口或多模块场景。

GoLand 项目缓存存在哪里?
GoLand 的项目缓存不是存在单个 .idea 目录里就完事的。它分三层:每个项目根目录下的 .idea(含索引、运行配置、代码样式等),用户主目录下的全局缓存(~/Library/Caches/JetBrains/GoLand202X.X 或 ~/.cache/JetBrains/GoLand202X.X),以及 Go 工具链自身的构建缓存($GOCACHE,默认在 ~/Library/Caches/go-build 或 ~/.cache/go-build)。批量清理必须覆盖这三处,否则重启后旧索引仍可能被复用。
怎么安全地批量清除多个项目的 .idea 和索引
别手动删每个项目的 .idea——容易漏,也容易误删 .idea/modules.xml 等关键文件。推荐用 GoLand 自带的「Invalidate Caches and Restart」功能,但要配合脚本触发多项目:
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 先关闭所有 GoLand 窗口
- 用终端批量进入各项目根目录,执行:
find /path/to/your/projects -maxdepth 2 -name ".idea" -type d -exec rm -rf {} \;(注意路径别写错,建议先加-print预览) - 再统一清空 JetBrains 全局缓存目录(路径见上一条),例如:
rm -rf ~/Library/Caches/JetBrains/GoLand2023.3
(替换成你实际版本号) - 最后别忘了清 Go 构建缓存:
go clean -cache
为什么只点一次「Invalidate Caches」不够
GoLand 的「Invalidate Caches and Restart」只作用于当前打开的项目窗口。如果你开了 5 个独立窗口(对应 5 个不同项目),它只会清掉当前激活窗口的缓存,其他窗口的 .idea 和索引照常加载。更隐蔽的是:某些项目可能以“附加模块”形式挂载进另一个项目里,这种嵌套关系下缓存清理逻辑会跳过子模块的独立索引目录。所以物理删除 + 全局缓存重置才是可靠手段。
清理后首次打开项目慢是正常的
删完立刻开项目,你会看到「Indexing…」卡住十几秒甚至几分钟——这是 GoLand 在重建符号索引和类型信息。尤其当项目用了 go.work 或大量本地 replace,它得重新解析所有跨模块引用。这时候别手抖关掉,也别急着改设置。等索引完成(右下角状态栏不再显示进度条),后续编辑、跳转、重构才会恢复流畅。如果持续卡在某个包,大概率是那个包的 go.mod 有语法错误或远程模块不可达,得单独检查。

















