go-micro系列(番外二)go module使用私库

由于众所周知的原因,在大陆地区我们无法直接通过go get命令或git clone获取到一些第三方包,这其中最常见的就是golang.org/x下面的各种优秀的包。

在Go 1.13以上的版本中,我们可以通过GOPROXY来控制代理,以及通过GOPRIVATE控制私有库不走代理。

  1. 设置GOPROXY代理:
// 代理方式一:七牛云代理(推荐)
go env -w GOPROXY=https://goproxy.cn,direct

// 代理方式二:GOPROXY.IO(自我感觉没有七牛的稳定)
go env -w GOPROXY=https://proxy.golang.com.cn,direct

设置后通过go env查看是否设置成功,设置成功再次go mod tidy时,项目的依赖会从代理源下载

go-micro系列(番外二)go module使用私库_第1张图片
2. 设置GOPRIVATE来跳过私有库,比如常用的Gitlab或Gitee,中间使用逗号分隔:
设置GOPROXY后,项目的所有依赖都会从代理源进行下载,但是公司内部的私有依赖我们不会上传到公开库,因此还需要一种方式让我们私有仓库不走代理,这种方式就是设置GOPRIVATE

// 有多个域名使用逗号分隔,可以是完整域名,也可以是带星号的泛域名
go env -w GOPRIVATE=*.gitlab.com,*.gitee.com
或
go env -w GOPRIVATE=git.mooc.com

-w 标记 要求一个或多个形式为 NAME=VALUE 的参数, 并且覆盖默认的设置

  1. 修改Git配置,使私有仓库可以使用ssh下载
// 示例仓库
// https://github.com/jobbole/awesome-go-cn.git
// [email protected]:jobbole/awesome-go-cn.git
git config --global url."[email protected]:".insteadof "https://github.com/"

你可能感兴趣的:(GO,golang,微服务,开发语言)