Skip to content

Go项目私有依赖处理

记录一次Go项目私有依赖处理的经历。

在头一次接手我们网校的项目时,我拉取私有仓库后发现编辑器在自动处理依赖时发生了错误,当时以为只是简单的网络问题,但是在我尝试手动拉取依赖时,发现了问题没有这么简单。

项目中有一个私有依赖,这个依赖也是我们内部所使用的,在没有配置git凭据的情况下,go get 会报错,提示找不到这个依赖。这时候只需在环境变量中配置以下字段即可:

bash
GOPRIVATE=git.yourdomain.com
GONOSUMDB=git.yourdomain.com
GIT_TERMINAL_PROMPT=1   # 若提示git terminial prompt disabled则添加此行

然后在拉取依赖时,Git会自动弹出一个窗口让你输入凭据,输入正确的凭据后,依赖就会被拉取下来。或手动在项目作用域保存凭据

代理问题

有时候一些私有储存库是不允许使用代理来访问的,比如gitea,默认禁用了代理访问。 一般情况下私有库的连通性是由储存库的管理员来决定的,但是有些开发者可能图省事直接用了一个代理,这时候就会出现问题。 这种情况下只需要在环境变量中GOPROXY追加direct即可

bash
GOPROXY=https://goproxy.cn,direct