GOPROXY依赖包代理配置说明
Go1.11版本开始支持包依赖管理工具,新增了GOPROXY环境变量,用于配置依赖包下载代理,通过代理配置可以实现翻墙下载一些所需的依赖包,可以说相当实用
代理诉求
Go1.11 版本开始支持包依赖管理,无需自行下载依赖到 GoPath 的 src 下,相当好用。
go get / go mod 命令下载依赖时,经常需要访问 github/golang.org 等网站。
如果公司的网络不具备访问这些网站时,初始化工程就会变得异常的困难。
因此,配置代理就显得非常使用。
现有代理
目前比较常见的代理网站如下,各网站都提供了详细的配置说明。
配置说明
版本 1.13+
// 打开包管理能力
go env -w GO111MODULE=on
// 配置代理地址
go env -w GOPROXY=https://goproxy.cn,direct
// 关闭代理
go env -u GOPROXY
// 查看go环境变量
go env
// 以JSON格式输出go环境变量
go env -json
早期版本
注意需要是 1.11+
// 打开包管理能力
export GO111MODULE=on
// 配置代理地址
export GOPROXY=https://goproxy.cn
// 关闭代理
export GOPROXY=
非代理方案
一般很少这么用。
go mod 提供了 replace 方式来指定替换包的地址。
如果第三方包中引用墙外的包,就需要手动修改他们了,不如代理方式方便。
module github.com/exercise
require (
golang.org/x/text v0.3.0
gopkg.in/yaml.v2 v2.1.0
)
replace (
golang.org/x/text => github.com/golang/text v0.3.0
)
小结
需要注意 Go 1.13+ 的配置方式和之前的有所区别即可。
不再是取外部的公共变量,而是 Go 特有的环境变量。
