背景:

公司在做自己的发布平台,需要自动化编译go 工程,大部分开发使用的都是go 1.12 版本

由于go mod的机制,有很多包需要代理才能进行下载,而自动化编译频繁的进行代理切换就很麻烦。

所以线上自动编译采用go 1.13 编译

go 1.13 编译的特点:https://zhuanlan.zhihu.com/p/74542832

过程:

在编译的时候就会偶尔莫名出现 xxx/go.mod malformed record data的问题

自我理解

因为出现的问题的包是公司内部的一个SDK,不存在翻墙之类的代理问题

我理解是这样的,go 1.13 可以设置多个代理,在某个下载失败时,他会换代理下载

代理设置:https://goproxy.io,direct  就是连个代理直接下载,或者使用goproxy.io下载

当使用直接下载时,会通过默认代理“sum.golang.org”,这个代理需要翻墙验证,所以会失败,切换goproxy.io 是报的这个错误,Google 上查可能是跟这个代理bug 有关

解决方案:

关掉go 1.13的默认代理

go env -w GOSUMDB=off

后来我考虑还可以设置GOPRIVATE 跳过私有库,原理可能都是一样的。想办法关闭代理。

12-28 11:45
查看更多