Google PB协议学习记录--一个简单的例子--如何编译.proto文件为.java文件_李棚的CSDN专栏-程序员宅基地

技术标签: protobuf  编译.proto文件  Android  


步骤一, 书写 .proto 文件,这里直接上google官方实例,并存储为addressbook.proto


package tutorial;

option java_package = "com.example.tutorial";
option java_outer_classname = "AddressBookProtos";

message Person {
  required string name = 1;
  required int32 id = 2;
  optional string email = 3;

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2 [default = HOME];
  }

  repeated PhoneNumber phone = 4;
}

message AddressBook {
  repeated Person person = 1;
}


步骤2、下载.proto文件编译器

到protobuf发布版本的地方https://github.com/google/protobuf/releases下载 protoc-3.1.0-win32.zip并解压



通过命令行将.proto的文件生成为.java的文件
官网上是这样写的
protoc    -I=$SRC_DIR      --java_out=$DST_DIR        $SRC_DIR/addressbook.proto

下面直接来看具体操作

1、由于protoc.exe在bin文件夹下,所以先进入该目录

2、执行 protoc.exe   --java_out=./     addressbook.proto   命令

3、在当前目录下就会生成目标文件






下面来解释下命令行的意思

protoc      --proto_path=IMPORT_PATH        --cpp_out=DST_DIR                            file.proto

                                                                          --java_out=DST_DIR 

                                                                          --python_out=DST_DIR          


1.引用文件夹(使用--proto_path  或者 -I),如果proto文件中需要引用其他文件,在这指定(需要绝对路径,也就是需要完整的路径)

IMPORT_PATH 引用的路径:当pb文件里面有import关键字时,会在引用路径里面寻找依赖的文件。如果没有给出,会再当前路径下进行寻找。也可以缩写成 -I


2.文件输出文件夹  (--cpp_out 或者 --java_out 或者 --python_out) 根据需要选择需要生成的格式,并且指定文件夹

3.需要编译的pb文件




版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/huangxiaominglipeng/article/details/52944041

智能推荐

随便推点