Mac下protobuf安装,并用maven编译导出jar包
一、概述
Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。用于 RPC 系统和持续数据存储系统。
Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。
二、安装
1.下载 适合自己系统的安装包
https://github.com/google/protobuf/releases
*小生是安装mac版(protoc-3.5.1-osx-x86_64.zip),用于开发调试
2.安装
下载解压后目录结构:
.
├── bin
│ └── protoc
├── include
│ └── google
│ └── protobuf
│ ├── any.proto
│ ├── api.proto
│ ├── compiler
│ │ └── plugin.proto
│ ├── descriptor.proto
│ ├── duration.proto
│ ├── empty.proto
│ ├── field_mask.proto
│ ├── source_context.proto
│ ├── struct.proto
│ ├── timestamp.proto
│ ├── type.proto
│ └── wrappers.proto
└── readme.txt
解压后把include目录下的内容copy到系统目录:/usr/local/include/
bin目录下的protoc即是启动文件,可以把protoc配置到环境变量PATH,此处不再赘述。
3.proto文件转java类
protoc ./ThdataProto.proto --java_out=./(存放路径)
三、maven编译导出jar包
protobuf的jar包在官网并没有提供,网上也很难找到,小生找的太久,最后放弃了,还是自己用maven编译一个吧(maven自行安装)
1.下载 ——protobuf-java-3.5.1.zip
2.解压后目录(protobuf-3.5.1)结构(一级目录):
.
├── BUILD
├── CHANGES.txt
├── CONTRIBUTORS.txt
├── LICENSE
├── Makefile.am
├── Makefile.in
├── README.md
├── WORKSPACE
├── aclocal.m4
├── ar-lib
├── autogen.sh
├── benchmarks
├── cmake
├── compile
├── config.guess
├── config.h.in
├── config.sub
├── configure
├── configure.ac
├── conformance
├── depcomp
├── editors
├── examples
├── generate_descriptor_proto.sh
├── gmock
├── gmock.BUILD
├── install-sh
├── java
├── ltmain.sh
├── m4
├── missing
├── objectivec
├── protobuf-lite.pc.in
├── protobuf.bzl
├── protobuf.pc.in
├── python
├── six.BUILD
├── src
├── test-driver
├── update_file_lists.sh
└── util
3.maven编译: mvn package
首先cd protobuf-3.5.1,copy一个protoc文件(上述mac安装protobuf时bin目录下的文件)到src目录下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tMVmk2KY-1573610607472)(https://img-blog.csdn.net/20180130105836803?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDI3NzQ0Ng==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]
再copy一个protoc文件到java/core/src/目录下:
然后回到java目录,执行:
mvn package
开始编译…
编译成功:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NDPjVqki-1573610607474)(https://img-blog.csdn.net/20180130105947654?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDI3NzQ0Ng==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]
完成后在java/core/target/目录下即能看到成功编译出来的jar包: