最近在接入某厂广告系统,需要使用 Protobuf Buffers(以下简称 PB)来进行数据交换,而在此之前,我对 PB 一无所知,经历了版本冲突、插件无效等问题之后,总算成功在项目中集成 PB。下面主要介绍 PB 的安装、IDEA PB 插件配置、Java 项目中基本的使用等:
PB 安装配置
- 下载 PB: 在 PB 官网,下载最新版(或者其他版本)PB,这里为了与 Java 项目中的 PB Maven 依赖版本一致,使用 PB 2.5.0 版本。
- 安装 PB:
- 设置环境变量: 编辑
/etc/profile
,在文件末尾加入:
1 2 | export PATH=$PATH:/usr/local/Cellar/protobuf/2.5.0/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Cellar/protobuf/2.5.0/lib |
至此,PB已经成功安装完毕,可以使用 protoc --version
命令来验证是否安装成功,如果出现如下结果,则表示 PB 已经安装成功并且生效。
libprotoc 2.5.0
Intellij IDEA 安装 Protobuf 插件
通常我们在编写好 PB 文件之后,需要使用 protoc
来将 PB 文件编译成对应的代码,在命令行里面我们可以使用如下命令来生成对应的 Java 文件:
protoc --proto_path=src --java_out=build/gen src/me.zhuliangliang
当我们有非常多的 PB 描述文件之后,如果每个文件都单独使用命令行来编译(尽管可以使用脚本来快速实现,但又将会面临拷贝 Java 文件等恼火的操作)。是否有这样一个工具:在 IDE 中编写 PB 文件之后,可以在指定 package 下一键生成对应的 Java 文件,方便对 Java 文件的管理。Google Protocol Buffers support 就是有着上诉功能的 IDEA 插件。
-
安装 PB 插件。进入 IDEA 设置中心,打开
Plugins
,点击Browse repositories
,搜索protocol buffer
安装插件,如下图所示。安装好 PB 插件之后,需要重启 IDEA。
至此,IDEA PB 插件安装完成,下面介绍如何在项目中使用 PB 插件来快速生成 Java 文件。
Java PB Demo
-
新建 Maven 项目,配置 PB 生成 Java 文件的目录:进入
Project Settings
,填写Output source directory
,这里的目录就是项目的Java source
目录。
-
根据 PB 描述文件,生成 Java 文件。在 PB 文件中右键,从菜单中选择
Compile ‘person.proto’
,就能生成对应的 Java 文件。
1 2 3 4 5 6 7 8 | option java_package = "me.zhuliangliang.proto"; option java_outer_classname = "PersonModel"; message Person { required int32 id = 1; required string name = 2; optional string email = 3; } |
- 加入 Maven 依赖。在 pom.xml 文件中加入如下依赖:
1 2 3 4 5 | <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>2.5.0</version> </dependency> |
- 编写测试用例
1 2 3 4 5 6 7 8 9 10
public class TestPersonModel { @Test public void testProto() { PersonModel.Person person = PersonModel.Person.newBuilder() .setId(100).setName("zhuliangliang") .setEmail("zhuliangliang.me").build(); System.out.println(person); Assert.assertEquals(100, person.getId()); } }
Demo github 地址:https://github.com/zhuliangliang/protoDemo