Go 引入自定义包
想做一个go的公共助手包,但涉及公司业务逻辑不能放在公有仓库,只能引入私有仓库。
仓库地址:gitlab.xxx.com
配置私有代理
go env -w GOPRIVATE=gitlab.xxx.com
项目中引入
require gitlab.xxx.com/{first}/{second} v{tag}
使用最新提交
go get -u gitlab.xxx.com/{first}/{second}@{提交SHA}
如果目录超过两级会拉取不成功,这时可以使用 replace 来引入
require gitlab.xxx.com/{first}/{second} v{version}
replace gitlab.xxx.com/{first}/{second} v{version} gitlab.xxx.com/{one}/{two}/{three} v{tag}
使用最新提交
require gitlab.xxx.com/{first}/{second} v{version}
replace gitlab.xxx.com/{first}/{second} v{version} gitlab.xxx.com/{one}/{two}/{three} {提交SHA}
然后更新引入就可以了
go mod tidy
go mod vendor
阿里云 codeup 代码拉取不成功
如果你的代码托管平台是阿里云的codeup则会出现代码拉取失败:
Codeup 的代码托管具备多级组的结构组织能力,同时由于 Codeup 不支持全局公开仓库,因此为了企业数据的安全考虑,在使用 Go 的依赖管理时必须使用鉴权。
在 Go 1.13 改进了对 .netrc 身份验证的支持。如果通过 HTTPS 发出请求并且可以找到匹配的 .netrc 条目,Go 会向请求添加 HTTP 基本身份验证凭据。
Codeup上使用 .netrc 的最佳实践
在 Codeup 上申请可用于HTTP验证密钥或者口令。
例如,在 Codeup 上申请的可用于读取仓库账号为 foo,token为 bar。那么对应的 .netrc 配置信息为:
machine codeup.aliyun.com login foo password bar
Linux\macOS
文件应该存放在执行账户的根目录下,即:~/.netrc。
Windows
定义环境变量 %HOME%,值为 %USERPROFILE%
在 %HOME% 路径下新建一个文件 _netrc
在 _netrc 中配置上述的配置信息
machine codeup.aliyun.com
login foo
password bar
结束.