goland 不支持离线安装第三方包,需通过 go mod vendor + replace 实现离线依赖管理:先在有网环境执行 go mod download 和 go mod vendor,再将 vendor 目录连同项目拷贝至离线机器,并设置 goproxy=direct。

GoLand 本身不提供“离线安装第三方包”的功能,它只是 IDE;真正执行依赖下载的是 Go 工具链(go get、go mod download 等)。所谓“离线安装”,本质是绕过网络,让 go 命令从本地路径加载模块。
为什么直接拖 ZIP 或 JAR 到 GoLand 无效
很多人误以为 GoLand 的插件安装逻辑(比如汉化包)能套用到 Go 包上——但这是两类完全不同的机制。GoLand 的插件系统只管理 IDE 自身扩展,go.mod 里声明的依赖必须由 Go 的 module resolver 处理,IDE 不会、也不能替你执行 go mod download 或改写 GOROOT/GOPATH 下的源码目录。
- 拖
zh.241.271.zip是给 IDE 换语言,不是给项目加gorm - 在 Settings → Go → GOPATH 里填路径,只影响旧式 GOPATH 模式,对 module-aware 项目无作用
- GoLand 的 “Sync dependencies” 按钮背后仍是调用
go mod download,没网就报no network available
真正的离线方案:用 go mod vendor + replace 指向本地路径
适用于内网开发、信创环境或 CI 构建隔离场景。核心是把远程模块“固化”为本地副本,并通过 go.mod 显式重定向引用。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 在有网机器上先完成依赖拉取:
go mod download,再执行go mod vendor,生成vendor/目录 - 把整个项目(含
vendor/)拷贝到离线机器,确保go.mod中包含module github.com/your/project且未被篡改 - 若需替换特定模块(如用内部 fork 版
github.com/internal/iris),在go.mod末尾加:replace github.com/kataras/iris => ./vendor/github.com/kataras/iris
- 运行
go build或 GoLand 点击 run 时,Go 工具链会优先读取vendor/下代码,不再尝试联网
常见坑:GOPROXY 设置残留导致仍尝试联网
即使你已复制 vendor/,GoLand 默认仍会读取环境变量或 go env 配置,触发 proxy 请求。必须显式禁用:
- 检查当前生效配置:
go env -w GOPROXY=direct(注意是direct,不是off或空字符串) - 在 GoLand 中:Settings → Go → GOPROXY → 改为
direct,否则编辑器底部状态栏仍显示 “Fetching modules…” - 若项目用了
go.work,还需在该文件同级目录下执行go env -w GOPROXY=direct,workfile 不继承全局 env - 某些旧版 Go(direct,需设为
off并配合GO111MODULE=on
离线依赖的本质不是 IDE 功能,而是 Go module 的本地化策略。关键不在 GoLand 怎么点,而在 go.mod 是否真实指向本地路径、GOPROXY 是否彻底关闭、vendor/ 是否完整且未被 IDE 自动清理。任何跳过这三步的“快捷方法”,最终都会在构建或调试时暴露网络依赖。










