应手动删除 $GOCACHE/pkg/mod/cache/download/ 下所有残留文件,因 go mod download 超时会在此留下不完整 zip、空目录或 .lock 文件,导致后续依赖操作反复失败;go clean -modcache 无法清理该目录,而删除后重试是官方推荐的幂等恢复方式。

go mod download 超时后残留的临时文件会卡住后续依赖操作
GoLand 本身不管理模块下载缓存,所有下载行为由 go mod download 或 go mod tidy 触发,而这些命令在超时中断时,可能在 $GOCACHE/pkg/mod/cache/download/ 下留下不完整 zip 包、空目录或损坏的 .lock 文件。这类“脏缓存”不会被自动清理,下次 go mod tidy 仍会尝试复用它,结果反复报错:failed to load module requirements 或 checksum mismatch。
为什么不能只靠 go clean -modcache?
go clean -modcache 只清 $GOCACHE/pkg/mod 下已成功解压的模块(如 github.com/gin-gonic/gin@v1.12.0/),但对 cache/download/ 里未完成的下载片段完全无感——那些 @v1.12.0.zip.partial、空 github.com/xxx/yyy/@v/ 目录、残留的 .in-progress 锁文件,全得手动揪出来。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 执行
go clean -modcache后,go mod download仍可能卡在同一个包上,提示 “already downloaded” 却无法校验 - 错误日志里常出现
open ...: no such file or directory,实际是它试图读一个半截 zip 的go.mod - Mac 用户注意:
~/Library/Caches/go-build/pkg/mod/cache/download/是默认路径;Linux 通常在~/.cache/go-build/pkg/mod/cache/download/;Windows 在%LOCALAPPDATA%\go-build\pkg\mod\cache\download\
直接删掉 cache/download 下所有内容最可靠
这不是暴力,而是 Go 官方隐含的推荐做法——go mod download 本就设计为幂等操作,重试时会重新拉取完整 zip 并校验。只要确保网络通畅、GOPROXY 配置正确(比如 https://goproxy.cn,direct),删光 cache/download/ 不影响已有模块,也不会触发重复下载。
- 进终端,运行:
rm -rf $(go env GOCACHE)/pkg/mod/cache/download/(macOS/Linux) - Windows 用户用 PowerShell:
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\go-build\pkg\mod\cache\download\" - 删完立刻试
go mod download,首次会慢一点,但不会再卡在“找不到文件”上 - 别碰
$GOPATH/pkg/mod—— 那是已验证的模块,删了就得重下全部依赖
GoLand 里要同步关掉自动触发下载
即使清了缓存,如果 GoLand 设置了自动同步,它可能在你打开文件瞬间就调 go list -mod=readonly,又因缓存不全而失败,导致 import 标红、跳转失效。这不是代码问题,是 IDE 在用坏缓存做分析。
- 进 Settings → Go → Modules,取消勾选
Auto-load modules on project open - Settings → Go → Language Server → Build Tags & Vendoring,把
Build project automatically关掉 - 右键项目根目录 →
Synchronize手动触发一次,等底部状态栏显示 “Indexing finished” 再写代码 - 如果仍标红,先在 Terminal 运行
go mod tidy,再点 GoLand 右上角的Reload project按钮(不是 Restart)
真正麻烦的从来不是下载失败,而是失败后留下的“幽灵文件”——它们不占多少空间,却让整个模块系统拒绝响应。删 cache/download/ 是唯一能彻底重置下载状态的操作,比反复 go clean -modcache 或重启 IDE 有效得多。

















