最近项目中用到protobuf,顺着整理一下使用protobuf的过程。protobuf使用起来是很简单的,网上和官方的资料都很多,但是环境搭建的资料稍微少点,所以主要是记录protobuf的环境搭建。 下文以eclipse下java使用为例。
1.在java中使用protobuf需要使用到protobuf.jar包,但是google没有直接提供可使用的工具包,而是提供了maven环境下载的源码,但我也没有maven环境,为了安全起见,pass掉使用网上第三方包的方案,就只能自己打包了。
1). 下载源码 https://github.com/google/protobuf ,我选择了2.6.0版本地址 https://github.com/google/protobuf/releases/download/v2.6.0/protobuf-2.6.0.zip
2). 下载protobuf编译工具 https://github.com/google/protobuf/releases/download/v2.6.0/protoc-2.6.0-win32.zip
3). 由于DescriptorProtos.java文件是需要生成的,所以直接将源码包里的java代码放到eclipse下编译是通不过的,接下就生成DescriptorProtos.java文件。
4). 解压两个包,得到 protobuf-2.6.0 和 protobuf-2.6.0-win32 两个,将protobuf-2.6.0-win32中的protoc.exe放到protobuf-2.6.0根目录下
5). 在命令提示符中,进入protobuf-2.6.0目录,执行protoc --java_out=java/src/main/java -I./src ./src/google/protobuf/descriptor.proto
6). 执行成功,在java源码目录下就能看到DescriptorProtos.java文件了。
7). 在eclipse中创建java项目,将com.googgle.protobuf目录整个copy到src目录下,编译。 注意java8需要eclipse4.4及以上版本,编译支持的最低版本建议为1.6,因为代码里使用了注解 @override,用1.5有的地方编不过。
8). 项目右键,到处为jar包,就可以在项目中使用了。
2. protobuf是需要定义消息文件的,在记事本中编写,无疑效率低下且不适合新手,google提供了eclipse下的插件,可以高亮proto代码,自动提示,嵌套引用,自动import等等。一共分为两个步骤
1. 安装xtext,在线安装地址 http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/ 安装时选择显示历史版本,只安装 Xtext SDK2.4.2即可。
注意 Android开发者在使用时请不要google集成的IDE,因为它内置的Xtext版本太高。
2. 安装protobuf-dt 在线安装地址 http://protobuf-dt.googlecode.com/git/update-site/ 请安装1.4.3版本
环境好了,接下就是根据项目写定义proto文件了。