前提
假设内部项目私有链接为 gitlab.xxx.abc
替换包名
替换私有包名
把所有 src 目录下文件夹名替换为实际私有链接如
a/b/c
替换为
gitlab.xxx.abc/a/b/c
更新环境变量
go env -w GOPROXY=https://goproxy.cn
go env -w GOPRIVATE=gitlab.xxx.abc
go env -w GONOSUMDB=gitlab.xxx.abc
go env -w GONOPROXY=gitlab.xxx.abc
编辑
vim ~/.netrc
写入,注意更新工号和自己的密码
machine gitlab.xxx.xyz login 用户名 password 密码
更新本项目mod
进入项目根目录,执行以下命令,注意更新项目名
go mod init gitlab.xxx.abc/xxx/项目名
反复使用go mod tidy
验证
go mod tidy
如果有报错如下,需要先更新被依赖项目为mod模式,替换其中的a/b/c
链接,回到最开始 只有被依赖项目也解决问题后,依赖项目才能被更新
gitlab.xxx.abc/ss/zzz/cmd imports
gitlab.xxx.abc/aa/common/sdf/sdf/xx imports: package xxx/sdaf/zxcv is not in GOROOT (/Users/zxcv/sdk/go1.14.2/src/asdf/asdf/asdf/asdf/asdf)
缓存项目包(可选)
这一步操作相当于把包缓存到这个项目里,以后新人可以免配置直接运行项目,如果有被依赖项目更新需要手动刷新缓存
go mod vendor
这篇文章是我在vivo的时候发现golang项目没有用mod的方式管理,版本混乱,但因为种种问题也没能用上迁移的办法。实际上我也没有操作过,如果你操作过且有效的话,请在此文下留言
公众号
扫码订阅最新深度技术文,回复【资源】获取技术大礼包
评论