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包: