我正在嘗試在 Go 中創(chuàng)建我的第一個(gè) monorepo。項(xiàng)目結(jié)構(gòu)如下所示:如圖所示,該monoplay文件夾是根目錄。該pb文件夾包含gRPC code我想在srv_boo/main.go和文件中使用的生成srv_foo/main.go文件。問(wèn)題是,如何使用和文件中生成gRPC code的文件夾?文件夾結(jié)構(gòu)是否正確?pbsrv_boo/main.gosrv_foo/main.go還想單獨(dú)部署服務(wù)。也許是https://bazel.build/解決方案?
1 回答

慕娘9325324
TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
將整個(gè)存儲(chǔ)庫(kù)作為一個(gè) go 模塊將對(duì)此有所幫助,即“Monoplay”根文件夾中只有一個(gè) go.mod 文件。然后服務(wù)可以使用“github.com/*/monoplay/pb/*”導(dǎo)入來(lái)引用生成的 go 文件。
這也將集中管理整個(gè)存儲(chǔ)庫(kù)的依賴(lài)關(guān)系,因?yàn)橹挥幸粋€(gè) go.mod 文件,如果你想要的話(huà)。
其他替代方案:
使用“go mod edit”: https
: //go.dev/ref/mod#go-mod-edit 或者,正如 DazWilkin 建議的那樣,在 proto 文件中使用“go_package”以及“go-grpc_opt”和“go_opt” ”。
我使用單模塊方法并推薦它。
如果存儲(chǔ)庫(kù)將包含大量代碼并且構(gòu)建所有內(nèi)容(包括容器圖像)很麻煩并且需要很長(zhǎng)時(shí)間,那么請(qǐng)查看 bazel。
- 1 回答
- 0 關(guān)注
- 235 瀏覽
添加回答
舉報(bào)
0/150
提交
取消