ProtoBuf在mac上的使用(Mac下IDEA安装Protobuf插件)

ProtoBuf简介

protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。
Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。
你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种数据流中使用各种语言进行编写和读取结构数据。你甚至可以更新数据结构,而不破坏由旧数据结构编译的已部署程序
最近因为项目需要,接触到了protopuf,可用于网络通信和通用数据交换。
简单来讲, ProtoBuf 是结构数据序列化[1]方法,可简单类比于 XML,其具有以下特点:
语言无关、平台无关。即 ProtoBuf 支持 Java、C++、Python 等多种语言,支持多个平台
高效。即比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单
扩展性、兼容性好。你可以更新数据结构,而不影响和破坏原有的旧程序

1.创建.proto 文件,定义数据结构。

syntax = "proto3";
// 生成的包名
option java_package="com.prototest.protobuf";
//生成的java名
option java_outer_classname = "UserInfo";

message UserMsg {  
      
     // ID  
     int32 id = 1;  
      
    // 姓名  
     string name = 2;  
      
    // 年龄  
      int32 age = 3;  
     
    // 状态 
     int32 state = 4;  
  
} 

第二步,protoc 编译 .proto 文件生成读写接口

因为proto安装容易出错,所以我选择了在idea中添加protoful插件,具体过程如下:

  1. 安装protoful插件
    ProtoBuf在mac上的使用(Mac下IDEA安装Protobuf插件)_第1张图片

  2. 标题

配置pom文件

<dependency>
   <groupId>com.google.protobuf</groupId>
   <artifactId>protobuf-java</artifactId>
   <version>${protobuf.version}</version>
</dependency>
<dependency>
   <groupId>io.grpc</groupId>
   <artifactId>grpc-all</artifactId>
   <version>${grpc.version}</version>
</dependency>
<build>
<extensions>
   <extension>
      <groupId>kr.motd.maven</groupId>
      <artifactId>os-maven-plugin</artifactId>
      <version>1.6.2</version>
   </extension>
</extensions>
<plugins>
   <plugin>
      <groupId>org.xolstice.maven.plugins</groupId>
      <artifactId>protobuf-maven-plugin</artifactId>
      <version>0.6.1</version>
      <configuration>
         ##这是你.proto 文件的目录,如实填写就行
         <protoSourceRoot>${basedir}/src/main/java/com/pancm/protobuf</protoSourceRoot>
         <protocArtifact>
            com.google.protobuf:protoc:3.1.0:exe:${os.detected.classifier}
         </protocArtifact>
         <pluginId>grpc-java</pluginId>
         <pluginArtifact>
            io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}
         </pluginArtifact>
      </configuration>
      <executions>
         <execution>
            <goals>
               <goal>compile</goal>
               <goal>compile-custom</goal>
            </goals>
         </execution>
      </executions>
   </plugin>
</plugins>
</build>
  1. 选择protoful:compile-javanano

ProtoBuf在mac上的使用(Mac下IDEA安装Protobuf插件)_第2张图片
4. 你会发现已经生成了

ProtoBuf在mac上的使用(Mac下IDEA安装Protobuf插件)_第3张图片

你可能感兴趣的:(idea,java,java,protobuf)