go src 批量迁移 go mod

小熊 Golang评论3,859字数 763阅读2分32秒阅读模式

前提

假设内部项目私有链接为 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的方式管理,版本混乱,但因为种种问题也没能用上迁移的办法。实际上我也没有操作过,如果你操作过且有效的话,请在此文下留言

weinxin
公众号
扫码订阅最新深度技术文,回复【资源】获取技术大礼包
Golang最后更新:2022-12-6
小熊