因为公司业务原因,需要了解熟悉protocol buffer
语法结构,关于protocol buffer
了解,可以浏览《Protocol Buffers初次认识》,此篇只是针对搭建基于Windows构建Java版本的实现。
部署准备工作
所谓工欲善其事必先利其器,搭建环境都是学习一门语言知识最基础的入门,搭建protocol buffer
需要准备下载的资料如下:
- 下载protobuf操作系统版本,本地环境window 10 64位,所以下载protoc-3.7.1-win64.zip
- 下载protobuf构建平台版本,这里主要针对Java版本,所以下载
protobuf-java-3.7.1.zip - 下载maven包,这块主要为了获取编译生成jar包,用于项目开发使用,详情后叙,这里下载apache-maven-3.6.1-bin.zip
配置环境变量
配置环境变量如下
在path目录下配置%protobuf_win%\bin;%apache-maven%\bin;
配置完毕后,可在CMD中输入proto --version
以及mvn -version
,可看到版本号,如下所示说明配置成功。
测试Protoc将.proto生成对应平台文件
配置完protobuf-win,以及maven环境变量后,可在下载的protobuf-java-3.7.1.zip解压目录下的/protobuf-3.7.1/examples有官方为我们提供的.proto文件,方便我们校验。运行以下指令:
protoc --java_out=${OUTPUT_DIR} path/to/your/proto/file
如果在指定输出目录中能够获取到对应的java类,说明我们配置正确。
proto在java项目的应用
到此,基本protobuf基本可以编译生成了,是不是还有小伙伴疑惑,我们下载的protobuf-java-3.7.1.zip,有何用?
这个文件主要用于配合我们下载配置的maven使用,将我们之前配置成功的protobuf_win
下bin目录中的protoc.exe
拷贝到protobuf-java-3.7.1.zip
解压目录下/protobuf-3.7.1/src
中,然后在/protobuf-3.7.1/java
中执行cmd,输入
mvn test
mvn install
mvn package
编译后在/protobuf-3.7.1/java/core/target
中可以获取到
protobuf-java-x.x.x.jar和protobuf-java-util-x.x.x.jar
,将这个两个jar包放到我们利用protoc
生成的java类的项目中引用,便可以愉快的使用protoc
生成的数据结构了。
当然如果java采用maven框架搭建的,也不需要这么麻烦去生成这个两个jar包,直接在maven文件中配置如下即可。
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>x.x.x</version>
</dependency>
确保运行时的版本号与protoc的版本号匹配(或者比版本号更新)。
如果要使用protobuf JsonFormat等功能,需要额外添加protobuf-java-util包依赖项:
< dependency >
< groupId > com.google.protobuf </ groupId >
< artifactId > protobuf-java-util </ artifactId >
< version > 3.6.1 </ version >
</ dependency >
如果java项目中有使用了Gradle,还可以这样设置
compile 'com.google.protobuf:protobuf-java:x.x.x'
同样,请务必检查版本号是否与您正在使用的protoc的版本号相匹配(或者比其更新)。
环境配置大概到此,需要详细了解的伙伴,可以移步到官网
https://github.com/protocolbuffers/protobuf/tree/v3.7.1/java中查询更多的配置。
另外关于Android,如果要使用protocol buffer
,可以采用
Protobuf Java Lite Runtime
。