路漫漫其修远兮
吾将上下而求索

go学习:go module私有仓库拉取

由于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

参考:

https://cloud.tencent.com/developer/article/1602151

未经允许不得转载:江哥架构师笔记 » go学习:go module私有仓库拉取

分享到:更多 ()

评论 抢沙发

评论前必须登录!