我正在尝试在 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。
- 1 回答
- 0 关注
- 208 浏览
添加回答
举报
0/150
提交
取消