Spring Boot 加载本地 JAR 包的技术实践

news/2024/12/1 0:36:38/

随着微服务架构的兴起,Spring Boot 因其快速构建、易于部署的特性,成为了众多开发者的首选框架。在开发过程中,我们有时需要引入一些不在公共 Maven 仓库中的 JAR 包作为依赖,这时候就需要加载本地的 JAR 包。本文将详细介绍在 Spring Boot 项目中如何加载本地 JAR 包,并给出一个具体的案例。

一、为什么需要加载本地 JAR 包?

在实际开发中,我们可能会遇到以下需要加载本地 JAR 包的情况:

  1. 赖的 JAR 包没有发布到公共 Maven 仓库。
  2. 依赖的 JAR 包是私有库,不方便公开。
  3. 需要使用某个特定版本的 JAR 包,而该版本并未在 Maven 仓库中提供。

二、加载本地 JAR 包的方法

  1. 将本地 JAR 包复制到项目的 libs 目录下(如果没有 libs 目录,可以手动创建)。
  2. 在 IntelliJ IDEA 中,右键点击 libs 目录,选择 Add -> Existing Item…,然后选择刚刚复制的 JAR 包。
  3. 右键点击刚刚添加的 JAR 包,选择 Add as Library…,在弹出的窗口中设置库的名称,并选择将其添加到项目的模块依赖中。
  4. 使用 Maven 添加系统依赖 如果项目使用 Maven 管理依赖,可以在 pom.xml 文件中添加系统范围的依赖,指向本地的 JAR 包。
<dependencies>  <!-- 其他依赖 -->  <dependency>  <groupId>自定义groupId</groupId>  <artifactId>自定义artifactId</artifactId>  <version>自定义版本号</version>  <scope>system</scope>  <systemPath>${project.basedir}/libs/自定义jar文件名.jar</systemPath>  </dependency>  
</dependencies>

请确保替换 自定义groupId、自定义artifactId、自定义版本号 和 自定义jar文件名.jar 为你的实际值。${project.basedir} 是 Maven 的一个属性,代表项目的根目录。

三、案例演示

假设我们有一个名为 jdp-core-1.1.2.RELEASE.jar 的本地 JAR 包,需要添加到 Spring Boot 项目中。

步骤一:复制 JAR 包到项目目录

将 jdp-core-1.1.2.RELEASE.jar 复制到项目的 libs 目录下。

步骤二:在 IntelliJ IDEA 中添加 JAR 包为库

  1. 在 IntelliJ IDEA 中,右键点击 libs 目录,选择 Add -> Existing Item…,然后选择 jdp-core-1.1.2.RELEASE.jar
  2. 右键点击 jdp-core-1.1.2.RELEASE.jar,选择 Add as Library…,设置库的名称(例如 My Local Library),并将其添加到项目的模块依赖中。

步骤三: Maven 添加系统依赖

<dependency><groupId>com.gsww.jdp</groupId><artifactId>jdp-core</artifactId><version>1.1.2.RELEASE</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/libs/jdp-core-1.1.2.RELEASE.jar</systemPath>
</dependency>

步骤三:在代码中使用 JAR 包中的类

一旦 JAR 包被添加为库,你就可以在代码中使用其中的类了。例如:

import com.gsww.jdp.MyClass; // 假设 MyClass 是 jdp-core-1.1.2.RELEASE.jar 包中的一个类  @SpringBootApplication  
public class MyApplication {  public static void main(String[] args) {  MyClass myClass = new MyClass();  // 使用 myClass 中的方法  SpringApplication.run(MyApplication.class, args);  }  
}

四、注意事项

  1. 使用本地 JAR 包通常不是最佳实践,因为它会导致项目依赖于特定路径上的文件,这不利于项目的可移植性和协作开发。在可能的情况下,最好将依赖发布到公共或私有
    Maven 仓库中。
  2. 如果使用 Maven 添加系统依赖,请确保在团队开发中,每个成员都知道如何正确配置本地的 Maven 仓库和 pom.xml 文件。
  3. 在提交项目到版本控制系统(如 Git)时,不要将本地 JAR 包一起提交,因为这样做会增加仓库的大小,并可能导致其他开发者无法正确构建项目。

五、总结

加载本地 JAR 包到 Spring Boot 项目中,可以通过手动复制 JAR 包到项目目录,并在 IDE 中添加为库,或者使用 Maven 的系统依赖功能来实现。在实际开发中,应优先考虑将依赖发布到公共或私有 Maven 仓库,以便更好地管理和协作开发。


http://www.ppmy.cn/news/1425413.html

相关文章

[C++][算法基础]欧拉函数(线性筛)

给定一个正整数 n&#xff0c;求 1∼n 中每个数的欧拉函数之和。 输入格式 共一行&#xff0c;包含一个整数 n。 输出格式 共一行&#xff0c;包含一个整数&#xff0c;表示 1∼n 中每个数的欧拉函数之和。 数据范围 1≤n≤ 输入样例&#xff1a; 6输出样例&#xff1a…

FPGA开发之状态机设计

状态机是许多数字系统的核心部件&#xff0c;是一类重要的时序逻辑电路。通常包括三个部分&#xff1a; 一是下一个状态的逻辑电路&#xff0c; 二是存储状态机当前状态的时序逻辑电路&#xff0c; 三是输出组合逻辑电路。 通常&#xff0c;状态机的状态数量有限&#xff0c;称…

Mac使用Idea新手常用快捷键

Mac使用Idea新手常用快捷键 前言常用指令1、选中多个文件&#xff0c;不连续2、点进去查看某个类的代码3、复制某个类的全类名4、鼠标滚轮选中多行&#xff0c;然后选中这些行上同一列光标所在的单词 前言 入职新公司后用的是mac&#xff0c;从windows切换到mac&#xff0c;一…

安卓手机APP开发__媒体开发部分__直播流

安卓手机APP开发__媒体开发部分__直播流 目录 概述 检查和监控直播的播放 在直播流中的定位查找 直播播放的用户界面 配置直播播放的参数 播放速度调整 定制播放速度的调整算法 直播窗口背后的异常和ERROR_CODE_BEHIND_LIVE_WINDOW 概述 ExoPlayer没有任何特殊配置的…

PCB---Editor 输出光绘

选择一个层*&#xff08;正面走线层和过孔&#xff09; 选择一个文件复制命名&#xff08;最后删除初始的那2个文件&#xff0c;下图是删除过后的&#xff09;&#xff1a; 隐藏全部开始重复以上步骤&#xff1a; 大致的层&#xff1a; Art01&#xff08;正面走线层和过孔&…

ceph osd分组

一、前言 使用分组可以更好的管理osd&#xff0c;将不同类型的磁盘&#xff0c;分到不同的组中&#xff0c;例如hhd类型的osd分配到hhd组&#xff0c;ssd类型的osd分配到ssd组&#xff0c;将io要求不高的分配到hhd组做存储&#xff0c;io要求高的分配到ssd组做存储 二、配置 查…

Unity 中(提示框Tweet)

using UnityEngine; using UnityEngine.UI; using DG.Tweening; using System; public class Message : MonoBehaviour {public float dropDuration 0.5f; // 掉落持续时间public float persisterDuration 1f; // 持续显示时间public float dorpHeight;public static Message…

endnote21从安装到使用!文献引用!Mac版

视频学习和资源获取 新建库 选择上方导航栏处的File下的New 软件 软件界面可以分成四个部分 2是个人图书馆 3是对某一分类中文献的展示 最右侧是对具体一篇文献的摘要、编辑以及PDF 有回形针标志意味着这篇有全文&#xff0c;也就是有pdf 如果没有回形针代表它只有引文信…