1. 使用go mod
- 升级go版本,go version >= 1.11
- 设置环境变量GO111MODULE
go env #查看go环境变量
go env -w GO111MODULE=off #go命令行将不会支持modules功能,依赖包会去gopath下寻找
go env -w GO111MODULE=on #go命令行会使用modules
go env -w GO111MODULE=auto #在 $GOPATH/src外面且根目录有 go.mod 文件时,开启模块支持
2. goproxy代理
解决go模块在中国区无法访问的问题
go env -w GO111MODULE=on
go env -w GOPROXY= #从镜像站点快速拉取模块
3. goprivate有什么用
go 命令会从公共镜像站点下载依赖包,并对模块包进行安全校验。
当模块库是私有仓库时,需要设置goprivate,这样就可以跳过代理服务和校验检查,这个变量的值支持用逗号分隔,可以填写多个值
go env -w GOPRIVATE=*.gitlab.com,*.gitee.com #一般是公司私有git仓库的域名地址
4. gosumdb有什么用
GOSUMDB(go checksum database)是Go官方为了go modules安全考虑,设定的module校验数据库,服务器地址为:sum.golang.org
如果在运行go mod vendor时,提示Get dial tcp 216.58.200.49:443: i/o timeout,则是因为Go
1.13设置了默认的GOSUMDB=sum.golang.org,这个网站是被墙了的,用于验证包的有效性
go env -w GOSUMDB=off #关闭module校验
go env -w GOSUMDB="sum.golang.google.cn" #专门为国内提供的sum 验证服务