Mac安装使用Protobuf
2022/8/23 23:25:34
本文主要是介绍Mac安装使用Protobuf,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、下载安装包
protobuf下载地址
目前最新版本protobuf-java-3.21.5.tar.gz
2、安装
tar -xzvf protobuf-java-3.21.5.tar.gz cd protobuf-3.21.5 ./configure make make check sudo make install
3、验证
which protoc protoc --version
4、idea使用proto
4.1、配置pom
<dependencies> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>3.21.5</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.xolstice.maven.plugins</groupId> <artifactId>protobuf-maven-plugin</artifactId> <version>0.6.1</version> <configuration> <!--proto 文件目录--> <protoSourceRoot>${project.basedir}/src/main/resources/demo</protoSourceRoot> <!--编译后文件的输出的目录--> <outputDirectory>${project.build.sourceDirectory}</outputDirectory> <!--设置是否在生成java文件之前清空outputDirectory的文件,默认值为true--> <clearOutputDirectory>false</clearOutputDirectory> </configuration> </plugin> </plugins> </build>
4.2、proto文件
//定义的是protobuf中使用的syntax协议,默认情况下是proto2,因为目前最新的协议是proto3 syntax = "proto3"; //package是指编译的时候生成文件的包。这是一个命名空间,虽然我们在后面定义了java_package,但是为了和非java语言中的协议相冲突 package com.nile; //java_multiple_files指编译过后java文件的个数,默认是false //如果是true,那么将会一个java对象一个类,如果是false,那么定义的java对象将会被包含在同一个文件中。 option java_multiple_files = false; //java_package指定生成的类应该使用的Java包名称。 如果没有明确的指定,则会使用之前定义的package的值。 option java_package = "com.nile.protos"; //java_outer_classname选项定义将表示此文件的包装类的类名。 // 如果没有给java_outer_classname赋值,它将通过将文件名转换为大写驼峰来生成。 // 例如,默认情况下,“msg.proto”将使用”Msg”作为包装类名称。 option java_outer_classname = "MsgProto"; //消息的定义,对于简单类型来说可以使用bool, int32, float, double, 和 string来定义字段的类型。 message Msg { uint32 id = 1; optional string content = 2; } //字段的修饰符,有三个修饰符分别是optional,repeated和required。 // //optional表示该字段是可选的,可以设置也可以不设置,如果没有设置,则会使使用默认值,对于简单类型来说,我们可以自定义默认值,如果不自定义,就会使用系统的默认值。对于系统的默认值来说,数字为0,字符串为空字符串,布尔值为false。 // //repeated表示该字段是可以重复的,这种重复实际上就是一种数组的结构。 // //required表示该字段是必须的,如果该字段没有值,那么该字段将会被认为是没有初始化,尝试构建未初始化的消息将抛出 RuntimeException,解析未初始化的消息将抛出 IOException。 //在Proto3中不支持required字段。
4.3、编译生成java类
这篇关于Mac安装使用Protobuf的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26高性能表格工具VTable总体构成-icode9专业技术文章分享
- 2024-04-16软路由代理问题, tg 无法代理问题-icode9专业技术文章分享
- 2024-04-16程序猿用什么锅-icode9专业技术文章分享
- 2024-04-16自建 NAS 的方案-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数, 加上remote_src: yes 配置-icode9专业技术文章分享
- 2024-04-14ansible 检测远程主机的8080端口,如果关闭,则echo 进程已关闭-icode9专业技术文章分享
- 2024-04-14result 成功怎么写-icode9专业技术文章分享
- 2024-04-14stopped 状态设置为变量,由外部传递进来-icode9专业技术文章分享
- 2024-04-14为什么ansible执行远程脚本需要放到后台-icode9专业技术文章分享