导入定义proto文件

Result消息类型与ServiceResponse是定义在同一文件中的。如果想要使用的消息类型已经在其他.proto文件中已经定义过了呢? 我们也可以通过导入(importing)其他.proto文件中的定义来使用它们。要导入其他.proto文件的定义,你需要在你的文件中添加一个导入声明,如:

  1. import "keke/service.proto";

默认情况下你只能使用直接导入的.proto文件中的定义. 然而,有时候你需要移动一个.proto文件到一个新的位置, 可以不直接移动.proto文件, 只需放入一个伪 .proto 文件在老的位置, 然后使用import public转向新的位置。import public 依赖性会通过任意导入包含import public声明的proto文件传递。例如:

  1. import public "elegance.proto";
  1. import "old.proto";

编译可以通过下面的命令:

  1. > protoc elegance.proto --go_out=plugins=grpc:.

如果没有给出标志,编译器会搜索编译命令被调用的目录。通常你只要指定proto_path标志为你的工程根目录就好。并且指定好导入的正确名称就好。