如何将外部(在供应商文件夹上)proto导入到我自己的原型中?
我用这个:
syntax = "proto3";
package command;
option go_package = "api";
import "github.com/service/command.proto";
service CommandService {
rpc Push(Command) returns (PushResponse);
}
message PushResponse {
string id = 1;
}
但是我收到一个错误,找不到该文件:
> protoc -I api api/command.proto --go_out=plugins=grpc:api
github.com/service/command.proto: File not found.
这也给出了同样的错误:
> protoc -I api -I vendor/github.com/service api/command.proto --go_out=plugins=grpc:api
github.com/service/command.proto: File not found.
我尝试在.proto文件上添加vendor/
前缀,但没有成功。
答案 0 :(得分:1)
您需要{<1}}每个文件夹,启动从中寻找导入。 -I
然后使用import语句中指定的相对路径尝试所有这些;所以:使用:
import
protoc -I api [other-options] some.proto
有some.proto
,那么您需要一个文件系统布局,如:
import "github.com/service/command.proto";
(其中[current folder]
- some.proto
- [api]
- [github.com]
- [service]
- command.proto
是文件夹)
请注意,如果省略[...]
,则假定当前目录为单个导入根目录,因此您可以:
-I
并使用[current folder]
- some.proto
- [github.com]
- [service]
- command.proto