go clean -cache 清 $GOCACHE(仅构建缓存),go clean -modcache 清 $GOMODCACHE(全局模块缓存,误删致重复下载);GoLand IDE 缓存需通过 Invalidate Caches 清理,不可混用。

go clean -cache 和 go clean -modcache 别混用
两者作用范围完全不同,误用会导致其他项目构建变慢甚至失败。go clean -cache 只删 $GOCACHE(默认 macOS 在 ~/Library/Caches/go-build),不影响模块下载;go clean -modcache 删的是 $GOMODCACHE(通常为 $GOPATH/pkg/mod),所有项目的模块缓存都会清空。频繁执行后者,下次 go build 会重新下载全部依赖,CI 流水线可能超时。
GoLand 自身缓存必须用 Invalidate Caches 清理
IDE 索引、语法高亮、跳转映射这些不是 Go 命令能管的,得靠 GoLand 自己的机制。常见症状:import 标红但 go run main.go 正常、结构体字段补全缺失、跳转进错版本的 vendor 包。这时:
- 必须走 File → Invalidate Caches and Restart → Invalidate and Restart
- 别只点 “Just Restart”,那不会重建索引
- 重启后首次打开项目会卡顿几秒——这是在重扫
go.mod和依赖树,属正常现象
删错了 $GOPATH/pkg 会导致依赖反复下载
有人看到 $GOPATH/pkg 占几十 GB 就直接 rm -rf $GOPATH/pkg,结果 go run 开始疯狂拉包。其实 $GOPATH/pkg 下分两块:
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
-
$GOPATH/pkg/mod:模块缓存,对应go clean -modcache -
$GOPATH/pkg/linux_amd64(或类似平台目录):编译好的 .a 归档文件,可安全删,go build会自动重建
真正不能动的是 mod 子目录——它不是临时产物,而是 Go 模块系统的“只读仓库”。
GoLand 的 .vmoptions 和 JetBrains 配置残留最易引发闪退
清理缓存不等于只清代码相关项。2025 年后 GoLand 对 JVM 参数更敏感,尤其 macOS 用户:
- 删掉
~/Library/Application Support/JetBrains/GoLand*/整个目录,不只是.vmoptions - 检查
goland.vmoptions里有没有-javaagent或自定义-Xmx超过 4g 的行——新版默认堆上限是 3g,超了直接启动失败 - 终端运行
xattr -d com.apple.quarantine /Applications/GoLand.app,否则 Gatekeeper 会静默拦截动态库加载
环境变量、JVM 参数、IDE 缓存这三类东西不在一个层级,改完一个不等于其他自动同步。每次操作后,务必验证终端里的 go env 和 IDE 内 Run Configuration 的实际生效值是否一致。

















