我们有一些项目依赖共享类型进行通信。团队已决定使用具有这些类型的共享包,并希望为此协议使用协议缓冲区。如果重要的话,语言是Go,并且所有这些项目都不公开。
如何使用项目中未定义的协议缓冲区类型?我似乎找不到一种在应用程序之间完全共享外部类型的方法。我阅读的所有内容都倾向于解释如何使用子包.proto
文件,而不是如何使用项目中另一个项目中的另一个开发人员/团队定义的类型。
答案 0 :(得分:0)
您可以使用protoc
并指定包含路径,例如:
protoc -I/usr/local/include -I. \
-I${GOPATH}/src \
-I${GOPATH}/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \
--go_out=$DST_DIR \
my-proto.proto
希望获得帮助
答案 1 :(得分:0)
为新软件包创建一个存储库(由.proto
文件自动生成)。即:
protoc --go_out=$GOPATH/your/git/repo /path/to/your/schema.proto
确保您git push
回购。
然后在需要使用它的外部项目上,只需包括:
import "your/git/repo/schema/yourStruct"