背景
在常见的项目中使用go mod做包管理,在引用第三方包时这个包可能维护在内部私有仓库中,需要解决几个问题:
- 引用第三方库
- 引用私有仓库时不使用代理
- 使用git方式获取代码
替换引用的仓库地址
这里直接修改代码中的引用工作量太大了,可以通过在go.mod中添加replace的方式:
- github.com/gophercloud/gophercloud => gerrit-infrastructure.xxx.org/gerrit/a/container/gophercloud.git xxx-v0.7
注意这里末尾要加.git,否则默认使用https获取代码
私有仓库
设置GOPRIVATE
- export GOPRIVATE=gerrit-infrastructure.xxx.org
使用git方式获取代码
1
2
3
4
5
6
[root@localhost cloud-provider-openstack]# cat /root/.gitconfig
[user]
name = xxx
email = xxx@xxxx.com
[url "ssh://xxx@gerrit-infrastructure.xxx.org:29418/container/gophercloud"]
insteadOf = https://gerrit-infrastructure.xxx.org/gerrit/a/container/gophercloud
参考
- https://goproxy.io/zh/
- https://segmentfault.com/a/1190000021127791
- https://juejin.cn/post/6844903975859257352