go 项目很大,go mod 不得不引入一些私包,于是用 replace 关键字将远程包映射到当地提前 pull 下来的私包。 问题来了, 每当 run 的时候,只要其中一个私包更改过,就要重新 pull 一次。那每次手动全部操作一遍,很没有效率,大家有没有什么更好的办法?(比如,感知到私包的远程库有更改,那么主动更新本地私包,以确保项目 build 无误。)
上过 go 大型业务代码的人,传授一下各位的经验。
1
saberlong 2020-08-21 08:01:05 +08:00 via Android 1
我这边是不用 replace 。部署 athens 之类的本地仓库。GOPROXY 设置为 athens 。私有包走内部部署的 git 服务。设置 GOPRIVATE 让私有包不走 GOPROXY
|
2
Leigg 2020-08-21 08:08:51 +08:00 via Android
使用相对路径语法也不行?
replace ... => ../ |
4
dbskcnc 2020-08-21 08:18:43 +08:00 via Android
go mod 不会主动更新版本的, 你的要求
|
5
dbskcnc 2020-08-21 08:19:20 +08:00 via Android
需要自己写脚本处理
|
6
sxfscool 2020-08-21 08:34:41 +08:00
私有包不也有 git 地址么,直接 replace 到 git 仓库地址就行,不用 pull 到本地
|
7
sxfscool 2020-08-21 08:36:57 +08:00
goproxy 设置为 https://goproxy.cn,direct , GOPRIVATE 设不设都行
|
8
pandanrain123 2020-08-21 09:59:17 +08:00
git submodule 配合 replace 应该可以吧
|
9
index90 2020-08-21 13:33:00 +08:00
export GOPROXY=https://goproxy.cn,direct
export GONOSUMDB=你的 git 仓库域名 |