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