Go mod 问题

2020-08-21 07:41:32 +08:00
 tmac33

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

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

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

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

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

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

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

© 2021 V2EX