一. 获取Protocol Buffer
1.1 获得源码
- Git clone之:
git clone https://github.com/google/protobuf.git
- 或者直接下载release版本:
https://github.com/google/protobuf/releases
- 本例选择从release下载3.5.1版本
- 下载并解压到目录:
G:\workbench\protobuf-3.5.1
1.2 编译protoc.exe(Windows平台)
准备工具: VS2015(包含C++模块),
cmake-3.12.0-rc1-win64-x64
打开cmake目录,运行cmakegui:
G:\develop\tools\cmake-3.12.0-rc1-win64-x64\bin\cmake-gui.exe
配置选项:
- Source Code目录:
G:/workbench/protobuf-3.5.1/cmake
- build the binaries目录:
G:/workbench/protobuf-build
- 菜单栏Tools->configure,选择generator:
本例使用VS2015 64位版本,所以选择:Visual Studio 14 2045 Win64
点击finish,结果如下图:
将列表中的
protobuf_BUILD_SHARED_LIBS
勾上, 然后generator。查看
G:\workbench\protobuf-build
目录,你会发现生成了一个VS工程。
- Source Code目录:
用VS2015 编译protobuf-build工程:
- 双击打开
G:\workbench\protobuf-build\protobuf.sln
我们选择release来生成解决方案:
然后等待编译完成。。。速度有点慢,大概要花几分钟。最后编译成功:
13>------ 已启动全部重新生成: 项目: ALL_BUILD, 配置: Release Win32 ------ 14>------ 已跳过全部重新生成: 项目: check, 配置: Release Win32 ------ 14>没有为此解决方案配置选中要生成的项目 15>------ 已跳过全部重新生成: 项目: INSTALL, 配置: Release Win32 ------ 15>没有为此解决方案配置选中要生成的项目 ========== 全部重新生成: 成功 13 个,失败 0 个,跳过 2 个 ==========
- 进入
G:\workbench\protobuf-build\Release
, 即可看到编译的结果。
接着我们将该目录加入环境变量。
- 双击打开
1.3 编译jar
需要安装maven
本例安装到G:\develop\tools\apache-maven-3.5.3
目录中。
- 将上一步编译好的protoc.exe拷贝到
G:\workbench\protobuf-3.5.1\src
中 - 将maven安装目录
G:\develop\tools\apache-maven-3.5.3\bin
加入环境变量 - cmd或powershell进入
G:\workbench\protobuf-3.5.1\java
,执行命令mvn install
- 生成jar包:
G:\workbench\protobuf-3.5.1\java\core\target\protobuf-java-3.5.1.jar
- 然后可以在java项目中愉快地使用啦
二. 简单使用
写.proto文件:
G:\develop\myWorkSpace\temp\protobuf\Product.proto
syntax = "proto3"; message Product{ string luckNum = 1; string code = 2; string phoneNum = 3; int32 uid = 4; }
生成.java文件:
protoc --java_out=G:\develop\myWorkSpace\temp\protobuf Product.proto
注意protoc的参数格式,目录名和文件名有空格隔开.
生成.java文件:
G:\develop\myWorkSpace\temp\protobuf\ProductOuterClass.java
- 现在你可以将java文件拷贝到项目中使用了。当然,你需要将前面编译的protobuf-java-3.5.1.jar添加到项目的lib中。各个IDE的添加方式都有点不同,请自行搞定。。。