当使用模块人工验证go代理获取go模块时,执行模块校验和验证时失败。
[在工作中,我们无法直接从Internet下载,但必须通过基于工件的本地代理进行下载。我已在本地工件中将GOPROXY(GOPROXY = https://repo.mycompany.se/artifactory/api/go/gocenter)指定为代理设置。运行“ go get”时,下载正常,我可以看到,但是校验和验证失败,因为尝试直接使用sum.golang.org而不是通过代理获取校验和。
C:\Users\x\go\src\hello2>go get rsc.io/[email protected]
go: finding rsc.io v1.5.2
go: downloading rsc.io/quote v1.5.2
verifying rsc.io/[email protected]: rsc.io/[email protected]: Get https://sum.golang.org/lookup/rsc.io/[email protected]: dial tcp: lookup sum.golang.org: no such host
C:\Users\x\go\src\hello2>
工件支持通过本地代理获取校验和,如果支持,如何设置。我已经阅读了有关直接使用gocenter时支持的博客文章,但使用人工制品时找不到任何信息。
我正在使用go 1.13,而我们正在使用工件6.12.2。
Artifactory 6.12.2用作golang代理时,当无法访问sum.golang.org时,当前不支持校验和验证。功能请求RTFACT-20405(无法访问sum.golang.org时支持go客户端校验和验证的工厂)。
同时,有关使用GONOSUMDB环境变量的信息,请参阅'go help module-private'和documentation。摘录自1-
“如果GOSUMDB设置为” off“,或者使用-insecure标志调用了” go get“,则不查询校验和数据库,并且接受所有无法识别的模块,但其代价是放弃了经过验证的可重复下载的所有模块。绕过特定模块的校验和数据库的更好方法是使用GOPRIVATE或GONOSUMDB环境变量。有关详细信息,请参见'go help module-private'“