GOPROXY依赖包代理配置说明

Go1.11版本开始支持包依赖管理工具,新增了GOPROXY环境变量,用于配置依赖包下载代理,通过代理配置可以实现翻墙下载一些所需的依赖包,可以说相当实用

代理诉求

Go1.11 版本开始支持包依赖管理,无需自行下载依赖到 GoPath 的 src 下,相当好用。

go get / go mod 命令下载依赖时,经常需要访问 github/golang.org 等网站。

如果公司的网络不具备访问这些网站时,初始化工程就会变得异常的困难。

因此,配置代理就显得非常使用。

现有代理

目前比较常见的代理网站如下,各网站都提供了详细的配置说明。

  1. goproxy:https://goproxy.io/zh/
  2. 七牛云:https://goproxy.cn
  3. 阿里云:https://mirrors.aliyun.com/goproxy/

配置说明

版本 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 特有的环境变量。

更多推荐

章节目录