《Go Modules 模块管理》
Go Modules 是 Go 1.11+ 引入的官方依赖管理工具,通过 go env 即可完成模块相关的全部配置。
1. 常用环境变量
# 开启 go mod 模式
go env -w GO111MODULE="on"
# 配置模块下载代理(可访问境外代码库)
go env -w GOPROXY=https://goproxy.io,direct
# 私人/内部仓库不走代理(按需配置,多个域名用逗号分隔)
go env -w GONOPROXY="github.com/your-company/*"
go env -w GOPRIVATE="github.com/your-company/*"
# 某些代码库还不支持 sumdb 索引,暂时屏蔽校验
go env -w GONOSUMDB="*"
说明:
GONOSUMDB与GONOPROXY都支持通配符*。
2. 模块常用命令
| 命令 | 作用 |
|---|---|
go mod init <module> |
初始化模块,生成 go.mod |
go mod tidy |
根据代码自动增删依赖 |
go mod download |
下载 go.mod 中的依赖缓存到本地 |
go mod vendor |
生成 vendor/ 目录离线依赖 |
go list -m all |
列出全部依赖模块及版本 |
3. 常见坑
- 墙外代码拉取失败:多为网络原因,配置可用的
GOPROXY即可。 - GOPROXY 为 direct 时:退化为从源仓直接拉取,想加速建议使用代理服务。
参考文档
- https://juejin.im/post/6844903798658301960
- https://zhuanlan.zhihu.com/p/59687626
阅读 —
·
全站 —