由于golang的开发,多多少少会引入一些被*的依赖,因此在使用go module管理时,我们都喜欢设置代理,这样不仅能够访问到被*的依赖库,还能加快依赖的下载速度。目前国内的不错的go-module代理地址:https://goproxy.cn。
1、添加go proxy
# direct 表示代理走不通时,使用直接连接 go env -w GOPROXY="https://goproxy.cn,direct"
2、设置私有库:
建议直接golang设置,多个用逗号分隔 golang设置 go env -w GOPRIVATE="gitlab.xxx.com/xxxx/*" linux通过配置文件 export GOPRIVATE=gitlab.xxx.com/xxxx/* windows通过配置文件 $env:GOPRIVATE="gitlab.XXXX.com/XXX/*"
设置私有库后,go会自动设置GONOPROXY,GONOSUMDB两个环境变量,表示私有库不走代理,也不检查代码sum。
3、设置认证:
下面是从centos拉取代码到本地,两种方式,一种是账号密码方式,另一种是通过deploy key来实现,后一种需要公钥私钥支持
如果你使用了go 1.13.3及之后的版本,则可以在HOME目录下编辑.netrc文件(这玩意也可以用来保存github的账号密码,避免每次都要输入账号密码),没有则创建,输入以下文本,并保存:
machine gitlab.mydomain login username password mypassword
4、修改拉取方式
修改git配置,因为go install/mod tidy 去下载依赖其实是通过git命令去下载的,而且默认是http协议去下载的,建议是修改为ssh协议去获取 方法一:通过修改文件方式,去到当前用户目录修改.gitconfig文件,新增如下,注意私有库是http还是https [url "git@gitlab.xxxx.com:"] insteadOf = https://gitlab.xxxxx.com/ 方法二:通过命令行形式,直接执行命令如下: git config --global url."git@gitlab.xxxx.com:".insteadOf "https://gitlab.xxxx.com/"
5、配置完之后,则可以使用以下命令下载依赖包,并且可以在项目中正常导入依赖包:
go get -v gitlab.com/myname/mysubgroup/myproject/mysubpakcage
当git仓库当做一个模块,更新代码,更新最新protocol文件,不用打标签,默认拉取master分支最新commit作为引用
go get gitlab.ziroom.com/tech-ops/kube-manager-protos@master
问题:
1、提示unknown revision
解决方法:更新git
参考:
评论前必须登录!
注册