《Go Modules 模块管理》

《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
阅读 — · 全站 —
🎸 我的歌单 0 首