Go依赖问题go get: [email protected]: Get “https://proxy.golang.org/xx“: dial tcp 172.217.27.145:443: i/o timeout

Go开始开发时,在国内目前基本都会 遇到依赖下载不了的问题,类似这样:在这里插入图片描述
go get: git.iglou.eu/Imported/go-wildcard@v1.0.1: Get “https://proxy.golang.org/git.iglou.eu/%21imported/go-wildcard/@v/v1.0.1.info”: dial tcp 172.217.27.145:443: i/o timeout

这是因为,Go 1.13 的发布后,为 Go 带来了不少变化(详见:https://golang.org/doc/go1.13 )。其中,Go modules 的扶正就是这次 Go 1.13 发布中开发者能直接感觉到的最大变化。

Go modules 最早发布于 Go 1.11,随着 Go modules 一起被发布的还有一个叫做 Module proxy protocol 的协议,通过它我们可以搭建 Go 模块代理,最后交由 GOPROXY 环境变量以指引 go 命令后续在抓取模块时的途径。
在这里插入图片描述
GOPROXY的值是一个以英文逗号 “,” 分割的 Go module proxy 列表,作用是用于使 Go 在后续拉取模块版本时能够脱离传统的 VCS 方式从镜像站点快速拉取。对于开发者来说,一个优秀的 Go 模块代理可以帮助我们解决很多问题,比如依赖无法直接下载时,如果有个代理可以帮助我们,那必定事半功倍。

但是GOPROXY拥有一个默认:https://proxy.golang.org,direct,而且很可惜 proxy.golang.org 在中国无法访问。这也是我们依赖下载时一直timeout的原因。

既然原因已知,是否有替代方案呢。答案是肯定的。官方不可以,我们目前可以用七牛云专门为咱们中国开发者而打造了一个 Go 模块代理:goproxy.cn。(ps:这个怎么也不能少了阿里云,阿里云也提供了类似的模块代理mirrors.aliyun.com/goproxy。我试了七牛的,速度很快,阿里的就当做备选了。参考文章https://studygolang.com/topics/9994

接下来就是看如何设置了。很简单,可以执行语句

go env -w GOPROXY=https://goproxy.cn,direct

这样就可以顺畅的接口Go开发时的依赖问题了。(也是头疼了半天,才发现这个问题。。。。)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值