go mod配置私有仓库

Posted by hiho on November 14, 2019

问题

如果项目引用公共仓库直接go get即可,但如果是公司项目一定用到私有仓库 如果不配置直接go get 私有仓库会发现404的情况

1.png

以下以gitlab为例子

配置GOPROXY

在 Go 1.13 版本的发布前,设置 GOPROXY 只能指定一个代理服务地址。进入 Go 1.13 版本后,GOPROXY 支持多代理设置,通过,隔开即可。如下:

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

按官方文档的说明,当第一个proxy在处理ge get所发出的HTTP请求时,返回HTTP状态码为404410时,就会查找下一个proxy

配置GOPRIVATE

If your Go version >= 1.13, the GOPRIVATE environment variable controls which modules the go command considers to be private (not available publicly) and should therefore not use the proxy or checksum database. For example:

# Set environment variable allow bypassing the proxy for selected modules
go env -w GOPRIVATE=*.corp.example.com

也就是当你设置GOPRIVATE的配置会让go忽略goproxy和gosumdb校验,直接走回源

添加账号认证

vim ~/.netrc
machine 域名,如:github.com
login 账号
password 密码

可以是用go env查看配置

—End—

迭代

  • 2019年11月14日 11:22 初稿

参考