在idea工具下,使用protobuf自动生成java代码,超详细教程

news2024/12/24 20:34:54

新项目需要使用google protobuf 生成java代码

开始第一步,网上很多教程都说下载protobuf support插件,但是我下载了很多idea版本,就是找不到这个protobuf support 插件

在idea 中选择file ->settings ->plugin , 搜索protobuf,一般都是有以下几个选项:

这里,我选择下载

protobuf  generate 、-------- 生成的插件

protobuf  highlighted、--------语法高亮

Protocol Buffers ----------语法支持

盲猜protobuf support 是上面几个插件的集成,因为我一直搜不到,所以就没试过使用protobuf support ,但是要生成代码,用上面三个插件就够了。

第二步:上面的插件装完重启后,新建一个maven项目,打开IDEA,选择“New Project”,选择Maven,选择Java版本,然后填写项目信息,创建一个新的Maven项目。

第三步,在pom.xml文件引入以下依赖:

 <dependency>
      <groupId>io.grpc</groupId>
      <artifactId>grpc-netty-shaded</artifactId>
      <version>1.34.1</version>
    </dependency>
    <dependency>
      <groupId>io.grpc</groupId>
      <artifactId>grpc-protobuf</artifactId>
      <version>1.34.1</version>
    </dependency>
    <dependency>
      <groupId>io.grpc</groupId>
      <artifactId>grpc-stub</artifactId>
      <version>1.34.1</version>
    </dependency>

这些依赖将帮助我们引入gRPC和protobuf库。

第四步,编写.proto文件

在项目的src/main/proto目录下创建一个名为helloworld.proto的文件,内容如下:

syntax = "proto3";

option java_multiple_files = true;
option java_package = "com.example.grpc";
option java_outer_classname = "HelloWorldProto";

package helloworld;

message HelloRequest {
  string name = 1;
}

message HelloResponse {
  string message = 1;
}

service HelloService {
  rpc sayHello(HelloRequest) returns (HelloResponse);
}

该文件定义了一个HelloWorld服务和两个请求和响应消息。

第五步:下载protoc.exe编译器

下载地址:Releases · protocolbuffers/protobuf · GitHub

下载完后解压,然后配置环境变量:PROTOCBUF_HOME

 然后再在系统变量的PATH下面,增加: %PROTOCBUF_HOME%\bin

 

然后打开命令提示符: 输入protoc,

  弹出上面的提示,说明成功了

第六步:生成java代码

idea -> tools–>configure genprotobuf
a).配置protoc path(指定第五步解压后的protoc可执行文件路径),
b).Quick Gen: 选择java
c).输出路径:勾选java,并指定protoc生成的java文件需要存放的路径

 

开始生成java客户端文件

点击: tools–>Generate all Protobufs

 

成功生成以下代码:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/518283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[SWPUCTF] 2021新生赛之Crypto篇刷题记录(11)

[SWPUCTF] 2021新生赛之Crypto篇刷题记录① [SWPUCTF 2021 新生赛]crypto6[SWPUCTF 2021 新生赛]ez_caesar[SWPUCTF 2021 新生赛]crypto10[SWPUCTF 2021 新生赛]pigpig[SWPUCTF 2021 新生赛]traditional NSSCTF平台&#xff1a;https://www.nssctf.cn/ PS&#xff1a;记得所有…

渤海银行有点火,李伏安有点烦

文丨新熔财经 作者丨向雪徊 5月8日&#xff0c;大连银保监局连开七份罚单&#xff0c;处罚对象为渤海银行股份有限公司大连分行及相关责任人。 大银保监罚决字〔2023〕27号显示&#xff0c;渤海银行大连分行存在五项主要违法事实&#xff1a;一是未执行统一授信&#xff1b;…

【敬伟ps教程】套索、魔棒工具、快速选择工具、选区的编辑和调整

文章目录 套索工具自由套索多边形套索磁性套索工具 魔棒工具快速选择工具选区的编辑和调整 套索工具 自由套索 套索工具的用法&#xff0c;点击鼠标左键拖动鼠标建立选区。当选区没闭合时&#xff0c;松开鼠标会自动闭合选区。套索工具灵活快速但不够准确。套索工具的选项栏是…

拥有Type-C接口的显示器上 绝大多数人都不知这么大作用

大多数的数码爱好者认识Type-C接口&#xff0c;估计都是从2015年的安卓手机开始的。 但估计不少用户不知道的是&#xff0c;电脑端的显示器上也有Type-C接口。 如果你是一个刚入门想买显示器的朋友&#xff0c;下面可以分别看看显示器最常见的几种接口的介绍&#xff0c;结合你…

Sentinel 入门使用

目录 一. Sentinel简介1.1Sentinel简介1.2 Sentinel与Hystrix的区别1.3 名词解释 二. sentinel控制台2.1 下载启动控制台2.3 客户端接入控制台2.4 Rest整合Sentinel2.5 Feign 整合Sentinel 想了解Sentinel具体的使用规则就点这里呀&#xff01;&#xff01;&#xff01; 一. Se…

FISCO BCOS v3.3.0发布,新增块内分片技术,单链性能突破10万TPS

FISCO BCOS开源社区一贯秉承开源、开放、联合共建的原则&#xff0c;致力于链接社区力量将FISCO BCOS打造成更加完美的区块链底层平台。 作为FISCO BCOS开源社区重要的发起者和推动者&#xff0c;微众区块链持续参与开源生态共建。在社区通力协作下&#xff0c;FISCO BCOS v3.…

【Linux】RK3399平台开发系列——设备树的学习笔记

学习内容 RK3399平台开发系列讲解&#xff08;设备树篇&#xff09;设备树的详解 - 视频介绍 简介 设备树&#xff08;Device Tree&#xff09;是用于描述硬件设备和系统关系的树形数据结构&#xff0c;主要用于 Linux 操作系统中的设备驱动程序。在嵌入式系统中&#xff0c…

ARM和X86、X86和X64、Intel和AMD、CPU和GPU介绍

一、ARM和X86 X86 和 ARM 都是CPU设计的一个架构。X86 用的是复杂指令集。ARM用的是精简指令集。 指令集其实就是机器码&#xff0c;机器码上是汇编&#xff0c;汇编之上是程序语言例如java、c、c#。 复杂指令集是在硬件层面上设计了很多指令&#xff0c;所以编程会简单些。 精…

ChatGLM是什么?ChatGLM和ChatGPT有什么区别?

ChatGLM是什么&#xff1f; ChatGLM是清华技术成果转化的公司智谱AI研发的支持中英双语的对话机器人。ChatGLM基于GLM130B千亿基础模型训练&#xff0c;它具备多领域知识、代码能力、常识推理及运用能力&#xff1b;支持与用户通过自然语言对话进行交互&#xff0c;处理多种自…

IS210WSVOH1AE直流发电机的种类 ? 直流发电机中换向器的用途

​ IS210WSVOH1AE直流发电机的种类 ? 直流发电机中换向器的用途 什么是直流发电机 通过使用直流发电机&#xff0c;我们可以发电&#xff0c;发电机 4个作用是将机械能转化为电能。直流发电机主要用于特殊应用或本地发电&#xff0c;直流发电机的运行特性非常重要&#xff0c;…

企业快递管理软件使用教程

想要分析企业快递管理软件的作用&#xff0c;首先要明白&#xff0c;企业快递管理的大致情况&#xff0c;以及面临的难题是什么&#xff1f; 随着经济的发展&#xff0c;以及快递行业的不断前行。因公寄件早已成了企业运作必不可少的环节之一&#xff0c;试问哪家企业没有寄递…

vue项目中echarts自适应问题高级解决方案

一、问题描述 1.1 页面布局 项目首页中有多个echarts图表&#xff0c;如下图所示&#xff1a; 页面布局如下&#xff1a; index页面&#xff08;绿框&#xff09;是父页面&#xff0c;父页面中包含A页面&#xff08;红框&#xff09;和B页面&#xff08;橙框&#xff09;&…

黑客是怎么练成的(自学黑客四大知识点)

前言 网学黑客技术的人越来越多了&#xff0c;不少人都不知道该怎么学&#xff0c;今天就来详细的说一说黑客是如何炼成的。 首先&#xff0c;什么是黑客&#xff1f; 黑客 &#xff1a;泛指擅长IT技术的电脑高手 黑客一词&#xff0c;源自英文Hacker&#xff0c;早期其实就…

选择排序详解(Selection sort)

本文已收录于专栏 《算法合集》 目录 一、简单释义1、算法概念2、算法目的3、算法思想 二、核心思想三、图形展示四、代码实现1、优化之前2、优化之后 五、算法描述1、问题描述2、算法过程 六、算法分析1、时间复杂度2、空间复杂度3、算法稳定性 一、简单释义 1、算法概念 选择…

Web3中文|生成式 AI 参与的未来,行业该做好哪些准备?

依照 AI 技术目前的发展态势&#xff0c; AI 可能会颠覆诸多行业的未来。 当前 AI 技术的突破让大众关注到了特定类型的 AI ——生成式 AI。生成式 AI 围绕分析、自动化和内容生成展开&#xff0c;生成内容兼具质和量。 了解生成式 AI 如何融入实用应用程序的是非常有必要的。根…

并查集算法

文章目录 1. 原理介绍2. 并查集的应用3. find()函数的定义与实现4. 并查集的join函数5. 路径压缩优化算法-优化find6. 路径压缩优化算法按秩合并算法 1. 原理介绍 并查集是一种用于维护集合关系的数据结构&#xff0c;它支持合并集合和查询元素所在的集合。它的基本思想是将元…

【人力资源管理】第1集 免费开源ERP: Odoo 16 Employees员工管理 构建一体化企业人力资源管理

文章目录 前言一、概览二、主要功能1.成功管理您的员工 集中您的所有 HR 信息2.跟踪时间&#xff0c;考勤3.休假管理4.经简化的费用管理5.轻松完成员工评估全面评估6.简化招聘流程7.简化招聘流程 总结 前言 人力资源 适用于当代企业 一体化&#xff1a;招聘、考评、报销、 休假…

android room数据库简单使用

Room来源 Android采用Sqlite作为数据库存储。由于Sqlite代码写起来繁琐且容易出错&#xff0c;因此&#xff0c;开源社区逐渐出现了各种ORM&#xff08;Object Relational Mapping&#xff09;库。常见的有ORMLite, GreenDAO等。Google也意识到推出自家ORM库的必要性&#xff0…

FE_Vue学习笔记 - 计算属性 监视属性

1 计算属性 1.1 计算属性的引入 组件模板应该只包含简单的表达式&#xff0c;复杂的表达式则应该重构为计算属性或方法。复杂表达式会让你的模板变得不那么声明式。我们应该尽量描述应该出现的是什么&#xff0c;而非如何计算那个值。而且计算属性和方法使得代码可以重用。 …

论文解读|MetaAI图像分割基础模型SAM——解锁数字大脑“视觉区”

原创 | 文 BFT机器人 内容提要 事件背景: 2023年4月5日&#xff0c;MetaAI研究团队发布论文“分割一切”一《Segment Anything》并在官网发布了图像分割基础模型一Segment Anything Model(SAM)以及图像注释数据集Segment-Anything 1-Billion(SA-1B)。 论文核心观点 : 目…