为了账号安全,请及时绑定邮箱和手机立即绑定

Monorepo:如何使用来自另一个项目的包?

Monorepo:如何使用来自另一个项目的包?

Go
富国沪深 2022-10-24 16:58:10
我正在尝试在 Go 中创建我的第一个 monorepo。项目结构如下所示:如图所示,该monoplay文件夹是根目录。该pb文件夹包含gRPC code我想在srv_boo/main.go和文件中使用的生成srv_foo/main.go文件。问题是,如何使用和文件中生成gRPC code的文件夹?文件夹结构是否正确?pbsrv_boo/main.gosrv_foo/main.go还想单独部署服务。也许是https://bazel.build/解决方案?
查看完整描述

1 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

将整个存储库作为一个 go 模块将对此有所帮助,即“Monoplay”根文件夹中只有一个 go.mod 文件。然后服务可以使用“github.com/*/monoplay/pb/*”导入来引用生成的 go 文件。
这也将集中管理整个存储库的依赖关系,因为只有一个 go.mod 文件,如果你想要的话。

其他替代方案:
使用“go mod edit”: https
: //go.dev/ref/mod#go-mod-edit 或者,正如 DazWilkin 建议的那样,在 proto 文件中使用“go_package”以及“go-grpc_opt”和“go_opt” ”。

我使用单模块方法并推荐它。

如果存储库将包含大量代码并且构建所有内容(包括容器图像)很麻烦并且需要很长时间,那么请查看 bazel。


查看完整回答
反对 回复 2022-10-24
  • 1 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信