在开发中我们经常会引用一些我们自己私有的公共项目。比如私有的common包。一般情况下,引用这些包有两种方式。一种是使用传统的go path,还有一种是使用go mod模式,然后加replace。
这两种方式都会有一些弊端,现在推荐第三种方式,go mod+私有仓库的方式。
如图所示,以git.wbctyun.cn开头的地址,是我们的私有仓库。执行go get时,会首先去我们配置的私有仓库地址拉取项目,然后再从github.com拉取项目。
require (
git.wbctyun.cn/avnet/vnet-common v1.0.3
git.wbctyun.cn/avnet/cvnet-utils v1.0.2
git.wbctyun.cn/avnet/cvpc/vpc-common v1.0.2
git.wbctyun.cn/avnet/cvpc/vpc-sdk-go v1.0.2
github.com/dgrijalva/jwt-go v3.2.0+incompatible
github.com/emicklei/go-restful-openapi/v2 v2.3.0
github.com/emicklei/go-restful/v3 v3.5.1
github.com/go-openapi/spec v0.20.3
github.com/json-iterator/go v1.1.11 // indirect
)
配置方式:
1.配置go env的全局变量。// 配置开启gomod
go env -w GO111MODULE="on"
// 配置GoMod私有仓库
go env -w GOPRIVATE="git@git.wbctyun.cn"
// 配置不加密访问
go env -w GOINSECURE="git.wbctyun.cn"
// 配置不使用代理
go env -w GONOPROXY="git.wbctyun.cn"
// 配置不验证包
go env -w GONOSUMDB="git.wbctyun.cn"
2.配置git不以http方式拉取
git config --global url."git@git.wbctyun.cn:".insteadOf "https://git.wbctyun.cn"
3.配置拉取git私有仓库的ssh公私钥。 既可以通过ssh://git@git.wbctyun.cn方式拉取代码。config文件配置参考:
# ctyun
Host git.wbctyun.cn
HostName git.wbctyun.cn
port 2222
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_ijijni_rsa
如果port没有特殊指定,可以不写。
公有仓库使用方式:
如果自己修改过公有仓库,可以推到远程仓库的新分支,如dev-1,然后项目需要引用此公有仓库,则使用命令,go get git.wbctyun.cn/avnet/vnet-common@dev-1,即加上分支号
4.win环境下,go get免密登录方式:添加环境变量:
变量值可以按照自己的需求填写。
然后再变量值所指的目录,添加_netrc文件,在文件中填入git私有仓库地址,账号密码:
1为私有仓库地址
2为仓库登录用户
3为密码,可以为访问令牌,或者用户密码
4.mac和linux系统直接在用户目录下配置文件:vim ~/.netrc,然后添加
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)