gRPC框架学习:5、Java+gRPC+maven+idea实例测试并打jar包

工作中Maven的使用,Java新人必会! Maven是一款强大的Java项目构建工具,通过pom.xml配置文件管理依赖关系、编译设置和打包部署,自动下载所需jar包并支持插件扩展功能。文章介绍了Maven的基本操作,包括IDEA配置、依赖引入方式(远程仓库和本地jar包)、打包功能说明、多环境管理配置(使用Profiles切换不同环境变量)以及私服搭建(Nexus工具管理内部依赖和缓存中央仓库资源)。这些功能显著提升了开发效率和项目维护的便捷性。 阅读详情

1. 前言

之前总结过go的使用实例,目前遇到项目部分功能sdk提供了Java版本的SDK,因此该模块暂时使用Java来开发使用,所以这里总结一下该基于Java的进程模块如何使用gRPC接口并通过maven+idea工件的方式将该模块和依赖gRPC的jar包打包成统一的jar包,之后通过Jdk执行jar包运行,可以做到在具备jdk的环境下跨平台运行。

2. pom.xml文件及生成包含gRPC接口的target(注意匹配jdk版本)

官方给的Java的快速gRPC实例是使用的gradlew方式:grpc.io/docs/langua…,所以如果可以的话项目最好以gradlew方式构建,目前维护的项目使用的maven,所以在GitHub上找一下maven方式: github.com/grpc/grpc-j…

以下是GitHub上目前给到的pom.xml的内容:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <dependencies>

        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-netty-shaded</artifactId>
            <version>1.35.0</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-protobuf</artifactId>
            <version>1.35.0</version>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-stub</artifactId>
            <version>1.35.0</version>
        </dependency>
        <dependency> <!-- necessary for Java 9+ -->
            <groupId>org.apache.tomcat</groupId>
            <artifactId>annotations-api</artifactId>
            <version>6.0.53</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <groupId>org.example</groupId>
    <artifactId>test-grpc</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <build>
        <extensions>
            <extension>
                <groupId>kr.motd.maven</groupId>
                <artifactId>os-maven-plugin</artifactId>
     
【Dubbo】利用Jmeter对Dubbo接口进行压力测试 Dubbo接口压力测试 一、简介 1、 需要环境工具: 需要环境:Jdk1.7、Maven; 开发工具:intellij idea(也可自行选择eclipse); 测试工具:Jmeter3.0; 2、 Dubbo接口压力测试: 编写dubbo接口测试代码调用dubbo服务,利用jmeter运行测试代码,进行压力测试 3、 Jmeter测试java接口:http:/ 阅读详情

相关推荐

Maven systemPath加载本地JAR:原理、场景与最佳实践

在Java项目构建中,依赖管理是确保项目可移植性和可重复性的核心环节。Maven通过坐标机制从仓库自动解析依赖,实现了优雅的依赖管理。然而,当遇到遗留系统、闭源SDK或本地调试等特殊场景时,标准仓库依赖机制可能失效。此时,Maven的system作用域配合systemPath提供了一种直接加载本地文件系统JAR包的解决方案。这项技术允许开发者通过指定绝对或相对路径,将本地JAR纳入项目构建和类路径,在快速原型验证和处理无法纳入仓库的第三方库时具有实用价值。但需注意,过度依赖systemPath可能破坏构建可

weixin_34396103的博客 521

Maven依赖安全漏洞诊断与修复:从IDE黄色警告到CI/CD自动化防护

在Java开发中,软件成分分析(SCA)是现代DevSecOps流程的关键环节,它通过扫描项目依赖树并与NVD、OSS Index等漏洞数据库比对,识别第三方库中的已知安全风险。其核心原理是依赖管理工具(如Maven)在解析传递性依赖时,可能引入存在CVE漏洞的组件版本。这项技术的价值在于将安全防护左移至开发阶段,提前发现如远程代码执行(RCE)、反序列化等高危漏洞,避免在生产环境埋下隐患。典型的应用场景包括持续集成流水线中的自动化扫描、开源组件选型评估以及企业级私有仓库的漏洞拦截。本文以常见的IDE依赖项

weixin_33800463的博客 940

IntelliJ IDEA + JDK 17下Spring Cloud微服务联调实战指南

微服务架构通过将单体应用拆分为多个独立部署的服务,提升了系统的可扩展性和可维护性。其核心原理在于服务间的解耦与通信,通常采用HTTP/REST或RPC协议。这种架构的技术价值在于支持团队独立开发、部署和扩展,并能采用不同的技术栈。然而,在开发阶段,尤其是在本地环境中进行多服务联调时,开发人员常常面临环境不一致、依赖复杂、服务发现困难等挑战,这直接影响了开发效率和问题排查。针对这些痛点,本文聚焦于**Spring Cloud**微服务框架,并结合**IntelliJ IDEA**这一主流集成开发环境,系统性地

weixin_34341229的博客 389

前端开发者如何用Java打通全栈与AI应用开发?

在当今技术生态中,全栈开发已成为开发者拓展能力边界、构建复杂应用的关键路径。其核心在于打通前端交互与后端业务逻辑,实现数据与服务的无缝集成。从技术原理上看,这要求开发者不仅掌握界面构建,还需深入理解服务端编程、API设计及系统架构。Java凭借其强类型、面向对象特性和成熟的JVM生态,在全栈开发中提供了企业级的性能、稳定性和可维护性,尤其适合构建高并发、高可用的核心业务系统。随着AI技术的普及,Java在模型部署与服务化方面展现出强大优势,能够通过REST API、gRPC等方式高效集成Python训练的A

weixin_34279246的博客 397

Spring AI Alibaba:Java开发者快速集成大模型的开箱即用框架

在当今的软件开发中,将人工智能能力集成到现有应用已成为提升产品智能化的关键路径。其核心原理在于通过标准化的API调用,将大语言模型的自然语言处理、内容生成等能力封装为可复用的服务。这一技术价值在于显著降低了AI应用的开发门槛和集成复杂度,使开发者无需深入底层细节即可构建智能功能。典型的应用场景包括为现有企业系统添加智能对话、内容摘要、代码生成等能力。Spring AI Alibaba框架正是这一理念的工程实践体现,它基于Java开发者熟悉的Spring Boot生态,提供了统一的编程模型和开箱即用的配置,让

410

使用Maven私服上传gRPC插件

在本文中,我们将介绍如何使用Maven私服将gRPC插件上传到私服中。Maven私服是一个用于存储和共享项目依赖项的服务器,它可以帮助简化项目构建和部署过程。在Maven私服中创建一个仓库,用于存储gRPC插件。至此,你已经成功地将gRPC插件上传到Maven私服,并可以在其他项目中使用它了。现在,你可以在其他项目中使用Maven私服中的gRPC插件了。这个命令将编译、打包并将插件上传到Maven私服的仓库中。步骤5:在项目中使用Maven私服中的gRPC插件。替换为你的Maven私服的URL。

git_web425的博客 152

gRPC-maven-helloworld:使用Maven的HelloWorld gRPC

gRPC-maven-helloworld HelloWorld代码基于以下快速入门: : 该测试的目的是根据以下有关如何构建POM插件和依赖关系的说明,看它是否使用maven进行构建: : 从github克隆此存储库,然后运行: mvn clean package 注意hello_world.proto文件在以下位置定义了gRPC服务: src/main/proto/hello_world.proto 我确实在hello_world.proto中更改了java_package的名称,因此生成的代码与应用程序代码在同一包org.jpdna.grchhellow中。 由于POM中提到了protoc和gRPC插件,因此在生成过程中会生成代码并将其放置在 target/generated-sources ``` protoc binary will need to be av

华为海思IC设计岗位笔试全解析:物理、电路与工艺三大方向备考指南

本文全面解析华为海思IC设计岗位笔试的物理、电路与工艺三大方向备考要点。针对物理设计方向,重点讲解半导体能带理论、载流子输运机制等核心考点;电路设计方向涵盖Verilog语法、UVM验证等关键技术;工艺方向则深入探讨FinFET工艺、光刻技术等前沿知识。提供高效备考策略和应试技巧,助力考生提升通过率。

weixin_29196613的博客 1089

逆向解析M团外卖mtgsig与waimai_sign加密参数实战指南⊙ω⊙

本文详细解析了M团外卖App中mtgsig与waimai_sign两个核心加密参数的逆向分析与生成方法。通过抓包定位、静态逆向与Frida动态调试,拆解了waimai_sign的RSA签名逻辑与mtgsig的复杂参数组装加密流程,并提供了Python模拟实现的框架与调试心得,为安全研究及合规数据分析提供实战指南。

weixin_29327525的博客 1285

开源DIY龙门架:从零构建可编程运动控制平台

运动控制是自动化与机器人技术的核心基础,它通过精确指令驱动执行机构,实现物体的定位与轨迹规划。其原理通常涉及控制器、驱动器、电机与传动机构的协同工作,核心价值在于将数字指令转化为精准的物理运动,从而解放人力并提升作业一致性。在工业自动化、桌面制造(如3D打印、激光雕刻)及教育机器人等领域应用广泛。本文聚焦于一个具体的工程实践案例:使用**铝型材**、**3D打印**零件、Arduino控制器及步进电机,从机械结构设计、电路连接到代码编写,手把手教你打造一个模块化、可扩展的开源龙门架系统。该系统不仅成本可控,

weixin_33168937的博客 625

scratch绘制四个三角形 2024年6月中国电子学会 图形化编程 scratch编程等级考试二级真题和答案解析

​ scratch绘制四个三角形 一、题目要求 2024年6月电子学会图形化编程Scratch等级考试二级真题 1、准备工作 1.保留默认角色小猫; 2.添加背景Stars。 2、功能实现 1 .隐藏角色小猫,设置画笔裙始位置为(0,0),画笔颜色为黄色,画笔的粗细为5; 2. 点击绿旗,绘制如下图所示图形,三角形的边长为50。 二、案例分析 1、角色分析 角色:小猫 2、背景分析 背景:Stars背景 3、前期准备 1. 保留默认的小猫不变 ​

青少年编程学习指导 1719

ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(二)

本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包exp

慕羽★的博客 1648

基于 Simulink 的固态变压器(SST)多级协同控制实战教程

《固态变压器多级协同控制仿真指南》摘要: 本教程详细讲解了基于Simulink的固态变压器(SST)三级架构建模与控制方法。核心内容包含:1)搭建级联H桥整流(CHB)、双有源桥(DAB)和逆变器(VSI)的三级主电路;2)提出创新的多级协同控制策略,通过功率前馈实现输入输出级动态匹配;3)给出系统级功率平衡、单元级均压控制的具体实现方案。教程特别强调解决实际工程中的关键问题:代数环处理、软启动设计和刚性系统求解器选择,并提供了硬件在环(HIL)仿真建议。附带的MATLAB代码示例可直接用于实现电容电压均衡

xiaoheshang_123的博客 121

OpenHarmony之Histreamer引擎深度解析:pipeline_core架构如何全面取代GStreamer,一统音视频播放与录制

Histreamer是OpenHarmony多媒体框架的核心媒体引擎,采用架构设计。一个轻量级的媒体引擎组件,提供播放、录制等场景的媒体数据流水线处理。1.播放场景分为如下几个节点:数据源读取、解封装、解码、输出;2.录制场景分为如下几个节点:数据源读取、编码、封装、输出。该引擎从OH5.0开始取代了原有的媒体引擎gstreamer(部分文档还保留较老架构的讲解),提供统一的音视频播放、录制、元数据解析等能力。

m0_67505153的博客 333

基于电能质量治理的场景实例:统一电能质量调节器(UPQC)与并网逆变器集成

本文通过Simulink平台,详细演示了统一电能质量调节器(UPQC)与并网逆变器的集成系统建模与仿真过程。主要内容包括:1)系统架构设计,包含光伏并网系统、非线性负载和电压扰动源;2)UPQC主电路设计,包括串联/并联单元拓扑和控制策略实现;3)与并网逆变器的能量交互与协同控制逻辑;4)典型电能质量问题的仿真测试场景。结果表明,该集成系统能有效治理电压暂降(维持负载电压380V±2%)和电流谐波(电网THD<3%),直流母线电压稳定在800V±5V。该系统为应对复杂电能质量问题提供了"电压

xiaoheshang_123的博客 310

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: MySQL死锁分析与解决之路
下一篇: 3 种缓存更新策略是怎样的?
JavaMonsterr
博客等级 码龄4年 211粉丝 481原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值