Go mod 问题

2020 年 8 月 21 日
 tmac33

go 项目很大,go mod 不得不引入一些私包,于是用 replace 关键字将远程包映射到当地提前 pull 下来的私包。 问题来了, 每当 run 的时候,只要其中一个私包更改过,就要重新 pull 一次。那每次手动全部操作一遍,很没有效率,大家有没有什么更好的办法?(比如,感知到私包的远程库有更改,那么主动更新本地私包,以确保项目 build 无误。)

上过 go 大型业务代码的人,传授一下各位的经验。

2558 次点击
所在节点    程序员
9 条回复
saberlong
2020 年 8 月 21 日
我这边是不用 replace 。部署 athens 之类的本地仓库。GOPROXY 设置为 athens 。私有包走内部部署的 git 服务。设置 GOPRIVATE 让私有包不走 GOPROXY
Leigg
2020 年 8 月 21 日
使用相对路径语法也不行?
replace ... => ../
tmac33
2020 年 8 月 21 日
@saberlong 感谢,您这个很有价值。我研究一下
dbskcnc
2020 年 8 月 21 日
go mod 不会主动更新版本的, 你的要求
dbskcnc
2020 年 8 月 21 日
需要自己写脚本处理
sxfscool
2020 年 8 月 21 日
私有包不也有 git 地址么,直接 replace 到 git 仓库地址就行,不用 pull 到本地
sxfscool
2020 年 8 月 21 日
goproxy 设置为 https://goproxy.cn,direct , GOPRIVATE 设不设都行
pandanrain123
2020 年 8 月 21 日
git submodule 配合 replace 应该可以吧
index90
2020 年 8 月 21 日
export GOPROXY=https://goproxy.cn,direct
export GONOSUMDB=你的 git 仓库域名

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/700116

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX