goland装d盘后c盘仍膨胀,因gocache、gomodcache和ide caches默认落c盘用户目录;必须用mklink /j软链接转移并同步设置对应环境变量,否则无效。

GoLand 安装本身无法“轻量化”,但它的缓存和 Go 工具链路径可以彻底剥离 C 盘——否则哪怕装在 D 盘,GOCACHE、GOMODCACHE 和 caches 文件夹仍会持续膨胀 C 盘空间。
为什么装到 D 盘后 C 盘还在涨?
GoLand 界面里选了 D 盘安装路径,只影响 IDE 自身程序文件;真正吃空间的是三类后台路径:
-
%LOCALAPPDATA%\Go\BuildCache(对应GOCACHE,go 构建中间产物) -
%USERPROFILE%\go\pkg\mod(对应GOMODCACHE,模块下载缓存) -
%LOCALAPPDATA%\JetBrains\GoLand202X.x\caches(IDE 自身索引与编译缓存)
它们默认全落在 C 盘用户目录下,且不受 GoLand 安装路径控制。不手动迁移,装再多次都白搭。
必须用 mklink /J 软链接转移缓存目录
Windows 下只有 mklink /J(目录联接)能骗过 Go 工具链和 JetBrains 运行时,让它们“以为”还在原路径,实际写入 D 盘。符号链接(/D)或快捷方式无效。
操作前务必确认:
- 以管理员身份运行 PowerShell 或 CMD
- 原缓存目录已完全清空(不能有残留文件)
- D 盘目标路径已手动创建,且当前用户有完全读写权限
- 关闭所有 GoLand、终端、正在运行的
go进程(否则文件被锁)
示例命令(以迁移 GOCACHE 为例):
move "$env:LOCALAPPDATA\Go\BuildCache" "D:\GoCache\BuildCache" mklink /J "$env:LOCALAPPDATA\Go\BuildCache" "D:\GoCache\BuildCache"
执行后进入 $env:LOCALAPPDATA\Go\BuildCache,应显示“快捷方式”图标且可正常打开。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
环境变量必须同步更新,否则软链接白设
软链接只是系统层路径映射,Go 工具链仍按环境变量找真实路径。若不改变量,下次 go build 可能绕过软链接,直接在 C 盘新建缓存。
必须设置以下变量(PowerShell 用户级永久生效):
go env -w GOCACHE="D:\GoCache\BuildCache"go env -w GOMODCACHE="D:\GoCache\mod"-
go env -w GOPATH="D:\go"(如用旧式 GOPATH 模式)
验证是否生效:
go env GOCACHE go env GOMODCACHE
两个命令输出必须是 D 盘绝对路径,且不含中文、空格、特殊符号。若仍是 C 盘路径,重启终端和 GoLand 再试。
GoLand 的 caches 目录要单独处理
JetBrains 的缓存不走 Go 环境变量,需手动软链接 + IDE 配置双保险:
- 先关掉 GoLand,移动
%LOCALAPPDATA%\JetBrains\GoLand202X.x\caches到 D 盘(如D:\GoLandCaches) - 执行:
mklink /J "%LOCALAPPDATA%\JetBrains\GoLand202X.x\caches" "D:\GoLandCaches" - 启动 GoLand → Settings → Appearance & Behavior → System Settings → Project Open/Close → 勾选
Use non-modal project view(非必须,但减少缓存压力)
注意:GoLand202X.x 中的版本号要替换成你实际安装的目录名(如 GoLand2024.3),漏掉会导致链接失效。
软链接不是一劳永逸——它只接管后续写入。C 盘上已有的缓存不会自动清理,也不会被新路径复用。迁移后第一件事就是确认 go env 输出正确,再跑一次 go mod download 观察是否真写进 D 盘。旧缓存得手动删,否则占着茅坑还假装没事儿。










