使用原始文件共享的外部软件包?

时间:2018-12-03 15:55:39

标签: go protocol-buffers

我们有一些项目依赖共享类型进行通信。团队已决定使用具有这些类型的共享包,并希望为此协议使用协议缓冲区。如果重要的话,语言是Go,并且所有这些项目都不公开。

如何使用项目中未定义的协议缓冲区类型?我似乎找不到一种在应用程序之间完全共享外部类型的方法。我阅读的所有内容都倾向于解释如何使用子包.proto文件,而不是如何使用项目中另一个项目中的另一个开发人员/团队定义的类型。

2 个答案:

答案 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"