当前位置: 首页 > news >正文

Maven 项目中引入本地 JAR 包

在日常开发过程中,我们有时会遇到一些未上传到 Maven 中央仓库或公司私有仓库的 JAR 包,比如第三方提供的 SDK 或自己编译的库。这时候,我们就需要将这些 JAR 包手动引入到 Maven 项目中。本文将介绍两种常见方式:将 JAR 安装到本地仓库(推荐)和使用 system 作用域直接引用。

方法一:使用 mvn install:install-file 安装到本地仓库(推荐)

这是最推荐的方式,它能够最大程度保持 Maven 项目的整洁性与可维护性。

操作步骤:

  1. 打开命令行工具。

  2. 执行以下命令,将本地 JAR 包安装到 Maven 的本地仓库中:

mvn install:install-file \-Dfile=/path/to/your.jar \-DgroupId=com.example \-DartifactId=your-artifact \-Dversion=1.0.0 \-Dpackaging=jar

请将 /path/to/your.jar 替换为你的 JAR 包实际路径。

  1. pom.xml 中添加依赖:

<dependency><groupId>com.example</groupId><artifactId>your-artifact</artifactId><version>1.0.0</version>
</dependency>

优点:

  • 与其他依赖使用方式一致;

  • 支持依赖传递;

  • 更适合多人协作和构建工具集成;

  • 可以结合私服进一步发布。

方法二:使用 system 作用域直接引用本地路径(不推荐)

此方法不需要安装到本地仓库,直接在 pom.xml 中配置 JAR 包的路径。

示例配置:

<dependency><groupId>com.example</groupId><artifactId>your-artifact</artifactId><version>1.0.0</version><scope>system</scope><systemPath>${project.basedir}/lib/your.jar</systemPath>
</dependency>

注意:${project.basedir} 表示项目根目录,推荐将 JAR 包放在 lib 目录中统一管理。

缺点:

  • 无法参与依赖传递;

  • 路径硬编码,不利于跨平台、多人协作;

  • Maven 官方不推荐使用。

总结

方法推荐程度特点
install-file 安装到本地仓库⭐⭐⭐⭐⭐规范、支持依赖传递、适合长期使用
system 作用域引用⭐⭐简单快捷,但不规范、不推荐

建议优先使用 install-file 的方式管理本地 JAR,既可以保持项目结构清晰,又方便团队协作和持续集成。如需管理多个本地 JAR,也可以考虑搭建私有 Maven 仓库进行集中管理。

相关文章:

Maven 项目中引入本地 JAR 包

在日常开发过程中&#xff0c;我们有时会遇到一些未上传到 Maven 中央仓库或公司私有仓库的 JAR 包&#xff0c;比如第三方提供的 SDK 或自己编译的库。这时候&#xff0c;我们就需要将这些 JAR 包手动引入到 Maven 项目中。本文将介绍两种常见方式&#xff1a;将 JAR 安装到本…...

SpringBoot整合SSE,基于okhttp

一、引入依赖 <dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.10.0</version> </dependency> <dependency><groupId>com.squareup.okhttp3</groupId><…...

从云端到边缘:云原生后端架构在边缘计算中的演进与实践

📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:为何云原生后端正在走向边缘? 随着物联网(IoT)、5G 和实时应用的快速发展,越来越多的数据在终端产生并需要即时处理。传统云计算虽强大,但将所有数据上送云端再处理,带来高延迟与带宽压力。…...

pytest心得体会

一、如何单独运行某条用例 在参数化测试中总有些用例失败&#xff0c;由于前后置数据的关系需要单独运行那条用例如何运行呢 方法一&#xff1a;直接查看控制台运行用例 确定是[2-case_data8] pytest.main(["-sv","testcase/违规告警/test_违规告警_非合同车…...

《Cesium 中两点绘制线的实现:实线、虚线、动态线、流动线详解》

摘要 在 Cesium 三维地球可视化开发中,两点之间绘制线是常见的需求。本文详细介绍如何在 Cesium 中实现两点间绘制实线、虚线、动态线和流动线,并提供完整的代码示例,方便开发者快速上手,满足不同场景下的可视化需求。 一、环境与依赖 本文代码基于 Cesium 库进行开发,…...

【EasyPan】MySQL FIELD() 函数实现自定义排序

【EasyPan】项目常见问题解答&#xff08;自用&持续更新中…&#xff09;汇总版 MySQL FIELD() 函数解析 一、FIELD() 函数技术解析 /* 基础语法 */ FIELD(column_name, value1, value2, ..., valueN)核心特性 特性说明返回值机制返回字段值在参数列表中的索引位置&…...

搭建TypeScript单元测试环境

我们在学习TypeScript的时候如果能够搭建一个单元测试的环境&#xff0c;那写些demo会很简单&#xff0c;下面我们使用jest来搭建一个单元测试环境 Jest 是一个由 Facebook 开发并开源的 JavaScript 测试框架&#xff0c;被广泛应用于前端和 Node.js 项目的单元测试。以下是关…...

Vue3父子组件数据同步方法

在 Vue 3 中&#xff0c;当子组件需要修改父组件传递的数据副本并同步更新时&#xff0c;可以通过以下步骤实现&#xff1a; 方法 1&#xff1a;使用 v-model 和计算属性&#xff08;实时同步&#xff09; 父组件&#xff1a; vue <template><ChildComponent v-mo…...

免费且开源的企业级监控解决方案:Zabbix

一、Zabbix 简介 Zabbix 是一款功能强大的企业级开源监控解决方案。它可以监控各种 IT 基础设施组件&#xff0c;包括网络设备、服务器、虚拟机、云服务、应用程序和数据库等。Zabbix 提供实时的监控、告警、报表和可视化功能&#xff0c;帮助用户及时发现和解决 IT 系统中的问…...

高并发系统的通用设计方法是什么?

背景 高并发系统的通用设计方法是解决系统在面对大量用户访问时的性能瓶颈问题。当系统遇到性能瓶颈时&#xff0c;通常是因为某个单点资源&#xff08;如数据库、后端云服务器、网络带宽等&#xff09;达到了极限。 为了提升整个系统的容量&#xff0c;需要找到这个瓶颈资源…...

ubuntu系统下部署使用git教程

在ubuntu系统下部署并使用git教程 1.下载并安装 sudo apt update sudo apt install git2.检验安装是否成功 git --version若输出git版本号即为成功。 3.配置参数 git config --global user.name "你的名字" git config --global user.email "你的邮箱&quo…...

redis client.ttl(key)

对应 Redis 的 TTL 命令&#xff1a; bash 复制 下载 TTL key 使用示例 1. 基本用法 java 复制 下载 try (Jedis jedis jedisPool.getResource()) {long ttl jedis.ttl("user:1001:session");if (ttl > 0) {System.out.println("键将在 " t…...

基于ACL方式手动建立站点间 IPSec 隧道

换句话说 不使用 IKE 自动协商&#xff0c;而是静态配置密钥和 SPI&#xff08;安全参数索引&#xff09;来配置隧道规则 环境基础 还是使用eNSP软件进行模拟&#xff0c;等后面再更新实际通信中的环境 没有框架&#xff0c;就没有基本思路 还是使用前面文章GRE VPN的拓扑&…...

电池大脑的基准测试及AI拓展

从为我们的智能手机供电到驱动电动汽车&#xff0c;我们的日常生活都离不开锂离子电池&#xff08;LIB&#xff09;。但是&#xff0c;理解其复杂的内部运作并预测其性能需要精密的工具。由此引入了多孔电极理论&#xff08;PET&#xff09;模型&#xff0c;我们可以将其视为模…...

数据通信学习笔记之OSPF的基础术语

Router ID RouterID 用于在自治系统中唯一标识一省运行 OSPF 的路由器&#xff0c;它是一个 32 位的无符号整数 配置完成后&#xff0c;如果需要修改 Router ID 的话&#xff0c;需要重启进程才能上生效 ​<Huawei>reset ospf 1 process​ // 重启 ospf 进程 1 Route…...

Android Cordova 开发 - Cordova 快速入门(Cordova 环境配置、Cordova 第一个应用程序)

一、Cordova 1、Cordova 概述 Cordova 是使用 HTML&#xff0c;CSS 和 JavaScript 构建混合移动应用程序的平台 2、Cordova 特征 &#xff08;1&#xff09;命令行界面&#xff08;Cordova CLI&#xff09; 这是可用于启动项目&#xff0c;构建不同平台的进程&#xff0c;…...

AndroidAutomotive模块介绍(四)VehicleHal介绍

前言 前面的文章中&#xff0c;描述了 Android Automotive 的框架中应用、Framework 层服务等知识&#xff0c;本篇文章将会继续按照 Android Automotive 框架介绍 Vehicle Hal 层服务的内容。 上一篇&#xff1a;AndroidAutomotive模块介绍&#xff08;三&#xff09;CarSer…...

Pingora vs. Nginx vs. 其他主流代理服务器性能对比

Pingora vs. Nginx vs. 其他主流代理服务器性能对比 核心对比概览 特性Pingora (Cloudflare)NginxEnvoyHAProxyCaddyTraefik开发公司CloudflareNginx, Inc/F5Lyft/CNCFHAProxy TechApache 2.0社区Containous核心语言RustCCCGoGo并发模型异步/多线程事件驱动事件驱动事件驱动协…...

4月23日作业

需求&#xff1a; 1&#xff0c;R5为ISP&#xff0c;其上只能配置IP地址&#xff1b; R5与其他所有直连设备间均使用公有IP&#xff1b;环回地址为100.1.1.1/32 2&#xff0c;R4设备为企业出口路由器 3&#xff0c;整个OSPF环境IP基于172.16.0.0/16划分&#xff1b; 4&…...

5.学习笔记-SpringMVC(P53-P60)

1.响应 &#xff08;1&#xff09;响应页面 &#xff08;2&#xff09;响应数据&#xff08;异步提交&#xff09;&#xff1a;文本数据、json数据 2.REST风格 (1)REST:表现形式状态转换。 (2)传统风格资源描述形式 3.Restful入门案例 5.基于RESTful页面数据…...

安卓14默认赋予应用权限

安卓14上赋予应用默认权限的方式跟之前的不太一样了 需要修改两个地方&#xff0c;一个是frameworks\base\services\core\java\com\android\server\pm\permission\Permission.java public boolean isNormal() {//eturn (mPermissionInfo.protectionLevel & PermissionInfo…...

数据的加载与保存

加载数据的方法 选项参数&#xff1a;可以通过选项参数传入URL地址、用户名、密码和数据表名称等。 路径参数&#xff1a;可以传入加载数据的路径。 MySQL语句&#xff1a;可以直接导入MySQL语句来加载数据。 保存数据的方法通用方法&#xff1a;使用df.write方法保存数据。…...

网络编程——通信三要素

一、概述 &#xff08;一&#xff09;网络编程 可以让设备中的程序与网络上的其他设备中的程序进行数据交互&#xff0c;实现网络通信 Java.net包下提供了网络编程的解决方案。 &#xff08;二&#xff09;通信的基本架构 1. CS架构&#xff08;Client客户端/Server服务端…...

es-存储与搜索优化

字段选型优化 链接&#xff1a;es-字段类型详解与优化建议 存储优化 es的底层使用Lucene,Lucene的存储的核心文件包括&#xff1a; 原始数据存储&#xff08;Store&#xff09;、倒排索引&#xff08;Inverted Index&#xff09;、列式存储&#xff08;DocValues&#xff09…...

Hadoop 集群扩容新增节点操作文档

Hadoop 集群扩容新增节点操作文档 一、前期准备 1. 环境检查&#xff08;所有新节点&#xff09; 确保 JDK 安装&#xff1a; java -version确保 Hadoop 安装&#xff1a; hadoop version添加主机名映射&#xff08;所有节点&#xff09;&#xff1a; cat >> /etc/h…...

高光谱相机在工业检测中的应用:LED屏检、PCB板缺陷检测

随着工业检测精度要求的不断提升&#xff0c;传统机器视觉技术逐渐暴露出对非可见光物质特性识别不足、复杂缺陷检出率低等局限性。高光谱相机凭借其独特的光谱分析能力&#xff0c;为工业检测提供了革命性的解决方案。以下结合中达瑞和VIX系列推扫式高光谱相机的技术特点与实际…...

07-IDEA企业开发工具-开发入门程序

1. IDEA创建Java项目的代码结构 项目结构: IDEA中的Java项目包含四种主要结构&#xff1a;工程(Project)、模块(Module)、包(Package)、类(Class)。 工程(Project): 代表整个项目&#xff0c;通常是一个磁盘目录或文件夹。模块(Module): 工程下的子单元&#xff0c;用于划分项…...

即插即用模块(3) -LSK 特征提取

paper&#xff1a;LSKNet: A Foundation Lightweight Backbone for Remote Sensing Code&#xff1a;https://github.com/zcablii/LSKNet 大型选择性内核块 (LSK Block) 功能 通过动态调整感受野&#xff0c;自适应提取遥感图像中目标的上下文信息&#xff0c;增强目标与环境关…...

彩虹表攻击与Nest密码存储

文章目录 前言&#x1f9e8; 什么是彩虹表攻击&#xff1f;&#x1f4f7; 图中解析左侧是彩虹表&#xff1a;右侧是用户数据库中的数据&#xff1a; &#x1f510; 如何防御彩虹表攻击&#xff1f;✅ 1. **使用 Salt 加密&#xff08;推荐&#xff09;**✅ 2. **使用强哈希函数…...

vue keep-alive标签的运用

keep-alive&#xff0c;想必大家都不会很陌生&#xff0c;在一些选项卡中会使用到。其实&#xff0c;它的作用大概就是把组件的数据给缓存起来。 比如果我有一个选项卡&#xff0c;标签一&#xff0c;标签二&#xff0c;标签三。现在&#xff0c;我需要实现&#xff0c;当我在标…...

python编写一段爱心代码

代码编写 1. 导入模块和常量定义 python import random from math import sin, cos, pi, log from tkinter import *CANVAS_WIDTH 640 # 画布的宽 CANVAS_HEIGHT 480 # 画布的高 CANVAS_CENTER_X CANVAS_WIDTH / 2 # 画布中心的X轴坐标 CANVAS_CENTER_Y CANVAS_HEIGH…...

Python流程控制

目录 一&#xff0c;条件判断&#xff1a;if语句 1.基本语法与示例 2.多重条件判断&#xff08;elif&#xff09; 3.常见错误与避坑指南 1.缩进错误 2.遗漏冒号 二&#xff0c;循环结构&#xff1a;while与for 1.while循环 2.Python的注释 3.字符串的格式化输出 4.fo…...

机器人雅克比Jacobian矩阵程序

% 定义机器人的连杆参数 L1 Link(d, 0, a, 0, alpha, pi/2); L2 Link(d, 0, a, 1, alpha, 0); L3 Link(d, 0, a, 1, alpha, 0);% 创建机器人对象 robot SerialLink([L1, L2, L3], name, MyRobot);% 设置机器人的关节角度&#xff08;弧度&#xff09; q [0, pi/4, pi/6];%…...

Qt Creator中自定义应用程序的可执行文件图标

要在Qt Creator中为你的应用程序设置自定义可执行文件图标&#xff0c;你需要按照以下步骤操作&#xff1a; Windows平台设置方法 准备图标文件&#xff1a; 创建一个.ico格式的图标文件&#xff08;推荐使用256x256像素&#xff0c;包含多种尺寸&#xff09; 可以使用在线工…...

应该怎样理解“被劫持“

通常, 在 iOS 开发相关的语境中&#xff0c;「被劫持」的精确定义 一句话&#xff1a;任何「未经应用或服务器授权&#xff0c;第三方改变了客户端—服务器之间解析结果、传输路径或数据内容」的情形&#xff0c;都视为网络被劫持。 具体可拆成 六大类&#xff0c;每类都对应可…...

RocketMQ面试题:进阶部分

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

【k8s系列7-更新中】kubeadm搭建Kubernetes高可用集群-三主两从

主机准备 结合前面的章节,这里需要5台机器,可以先创建一台虚拟机作为基础虚拟机。优先把5台机器的公共部分优先在一台机器上配置好 1、配置好静态IP地址 2、主机名宇IP地址解析 [root@localhost ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost…...

12、高阶组件:魔法增幅器——React 19 HOC模式

一、魔法增幅器的本质 "高阶组件是魔法师用咒语叠加的炼金术&#xff0c;"霍格沃茨魔咒研究院院长凝视着发光的增幅器&#xff0c;"通过函数式能量场的嵌套&#xff0c;让基础组件获得预言家日报式的逻辑继承&#xff01;" ——以神秘事务司的「维度叠加理…...

Linux避免文件误删详解(Linux Avoids File Deletion Errors with Detailed Explanation)

Linux避免文件误删详解 背景 大家都知道&#xff0c;rm指令在Linux中非常牛&#xff0c;rm -rf更是牛中的霸主。什么删系统跑路、删库跑路就是这个指令造成的。可以看出指令虽然牛&#xff0c;但是危险性极高。那么怎么避免某些时候的这种误操作造成的影响呢&#xff0c;阿祥…...

模板方法模式:定义算法骨架的设计模式

模板方法模式&#xff1a;定义算法骨架的设计模式 一、模式核心&#xff1a;模板方法定义算法骨架&#xff0c;具体步骤延迟到子类实现 在软件开发中&#xff0c;经常会遇到这样的情况&#xff1a;某个算法的步骤是固定的&#xff0c;但具体步骤的实现可能因不同情况而有所不…...

QT之Q_PROPERTY介绍以及在QWidget中的用法

目录 一、 Q_PROPERTY介绍 1、 Q_PROPERTY是什么 2、Q_PROPERTY 的语法 3、Q_PROPERTY 的作用 二、在QWidget中的用法 1、示例1&#xff1a;自带属性 2、 示例2&#xff1a;自建属性第一种 3、 示例3&#xff1a;自建属性第二种 4、动态属性 三、注意事项 四、总结 一…...

MySQL 8 自动安装脚本(CentOS-7 系统)

文章目录 一、MySQL 8 自动安装脚本脚本说明&#x1f4cc; 使用脚本前提条件1. 操作系统2. 用户权限3. 网络要求 &#x1f4cc; 脚本的主要功能1. 环境检查2. MySQL 自动安装3. 自动配置 MySQL4. 防火墙配置5. 验证与输出 &#x1f4cc; 适用场景 二、执行sh脚本1. 给予脚本执行…...

软件测试基础知识(2) -- 软件评测师(十三)

3 基于风险的测试 风险是当前未发生而未来有肯会发生并造成一定负面影响的事件。 3.1 基于风险的测试概述 &#xff08;1&#xff09;测试计划内容的核心&#xff1a; 1&#xff09;测什么&#xff1a;从风险出发&#xff0c;需要明确地列举出要测试哪些具体的功能和非功能的质…...

axios 在请求拦截器中设置Content-Type无效问题

Axios 会根据请求数据自动设置 Content-Type&#xff1a; 当请求体为空时&#xff0c;Axios 会移除 Content-Type 头部 当请求体为对象时&#xff0c;默认设置为 application/json 当请求体为 URLSearchParams 时&#xff0c;默认设置为 application/x-www-form-urlencoded …...

MFC案例:使用键盘按键放大、缩小窗口图像的实验

当在对话框窗口居中显示一幅图像时&#xff0c;图像的尺寸可能大于或小于窗口的尺寸&#xff0c;这时我们希望通过使用按键“”进行图像放大显示&#xff0c;使用按键“-”进行缩小显示&#xff08;当然也可以使用其它按键&#xff09;。下面开始使用MFC进行这个实验&#xff0…...

本地(NAS/服务器)与云端(Docker/Kubernetes)部署详解与对比

本地&#xff08;NAS/服务器&#xff09;与云端&#xff08;Docker/Kubernetes&#xff09;部署详解与对比 一、本地部署&#xff08;NAS/服务器&#xff09; 适用场景&#xff1a; 需要完全控制硬件和数据&#xff08;如隐私敏感场景&#xff09;。小规模应用或测试环境。网…...

如何解决极狐GitLab 合并冲突?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 合并冲突 (BASIC ALL) 合并冲突发生在合并请求的两个分支&#xff08;源分支和目标分支&#xff09;对相同代码行进行了不同…...

DeepSeek在物联网设备中的应用:通过轻量化模型实现本地化数据分析

文章目录 一、引言二、DeepSeek轻量化模型的技术原理1. 模型量化2. 模型剪枝3. 动态精度调整 三、本地化数据分析的实现路径1. 硬件环境配置2. 模型加载与推理3. 数据预处理与后处理 四、行业应用案例1. 医疗智能穿戴设备2. 工业设备预测性维护3. 智能家居能耗优化 五、性能优化…...

opencv--图像

像素(像素点) 定义&#xff1a; Pixel 是 Picture Element&#xff08;图像元素&#xff09;的缩写&#xff0c;是数字图像中最小的独立单位。每个像素代表图像中的一个点的颜色和亮度信息。 关键特性&#xff1a; 颜色&#xff1a;通过不同的色彩模型&#xff08;如RGB、CMYK…...

【KWDB 创作者计划】_嵌入式硬件篇---数字电子器件

文章目录 前言一、系列前缀(如 "74" 或 "54")74(商用级)54(工业级)二、逻辑家族(如 "LS"、"HC"、"HCT" 等)TTL(晶体管-晶体管逻辑)家族CMOS(互补金属氧化物半导体)家族BiCMOS(双极 CMOS)家族三、功能编号(如…...