千呼万唤始出来,GO1.13 这个月终于发布了。

说下在 cn 正确使用 MODULES 的方式。

设置方式

go env -w GOPROXY=https://goproxy.cn,direct 这一句运行即可,注意的是会被环境变量覆盖掉

GOSUMDB

如果设置了 goproxy.cn, 那么 GOSUMDB 就不用设置了。

GOSUMDB 默认是https://sum.golang.org, 在 cn 可以使用 https://sum.golang.google.cn/。 运行 go env -w GOSUMDB=https://sum.golang.google.cn/ 即可。

私有库

go 提供了 GONOPROXY、GONOSUMDB 还有 GOPRIVATE 三个参数针对私有库。

GOPRIVATE 可以设置一个以逗号分割的列表,其中匹配的所有网址都将作为私有库被信任,因此不与 sumdb 对比。

GONOSUMDB 和 GONOPROXY 接受相同的列表,覆盖掉 GOPRIVATE 的值。这两者提供了更细致的私有库控制,可以选择性的私有库不走代理或者不检查 sum 。

Example 1:

GOPRIVATE=git.example.com,git.example.cn

Example 2:

GONOSUMDB=git.example.com

如上例1,这样设置的话,就会将 git.example.com 和 git.example.cn 通通认为是私有库,也就不走代理和 sumdb 验证了。

例2只设置了 GONOSUMDB,那么 git.example.com 还是会走代理,但是不会走 sumdb 验证。 GONOPROXY 同理。

详细文档可以在 GO1.13 中运行 go help module-private 查看。