这几天正在尝部署长安链,其中在编译证书生成工具时,发现老是出现i/o timeout,原因就是依赖拉取超时.
在网上查阅资料后发现是自己的golang版本太低(1.3一下),因为goalng在最初开发时,国内基本上都会遇到依赖下载不了的问题
然而在1.3版本后,golang推出了go module 机制,同时发布了一个叫做 Module proxy protocol 的协议,通过这个机制,我们可以搭建go模块代理,最后通过GOPROXY变量以指引go命令在后续抓取模块的途径
但是GOPROXY拥有一个默认:https://proxy.golang.org,direct,而且很可惜 proxy.golang.org 在中国无法访问。这也是我们依赖下载时一直timeout的原因。
这里只需要我们将该变量设置为GOPROXY=https://goproxy.cn,direct
在命令行输入 go env -w GOPROXY=https://goproxy.cn,direct,即可正常拉取依赖