dph23577 2018-04-12 10:10
浏览 34
已采纳

自行导入供应商原型

How to import external (on vendor folder) proto into my own proto?

I'm using this:

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;
}

But I get an error that the file was not found:

> protoc -I api api/command.proto --go_out=plugins=grpc:api
github.com/service/command.proto: File not found.

Also this gives the same error:

> protoc -I api -I vendor/github.com/service api/command.proto --go_out=plugins=grpc:api
github.com/service/command.proto: File not found.

I tried prefixing with vendor/ on .proto file as well with no success.

  • 写回答

1条回答 默认 最新

  • doxd96148 2018-04-12 10:41
    关注

    You need a -I per folder from which to start looking for imports. import then tries all of them using the relative paths specified in the import statement; so: to use:

    protoc -I api [other-options] some.proto
    

    where some.proto has import "github.com/service/command.proto";, then you would need a file-system layout like:

    [current folder]
    - some.proto
    - [api]
      - [github.com]
        - [service]
          - command.proto
    

    (where [...] is a folder)

    Note that if you omit -I, then the current directory is assumed as a single import root, so you could have:

    [current folder]
    - some.proto
    - [github.com]
      - [service]
        - command.proto
    

    and just use protoc [other-options] some.proto

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)