18. SpringBoot 如何在 POM 中引入本地 JAR 包

❤️ 个人主页:水滴技术

🌸 订阅专栏:成功解决 BUG 合集

🚀 支持水滴:点赞 👍 + 收藏 ⭐ + 留言💬

Spring Boot 是一种基于 Spring 框架的轻量级应用程序开发框架,它提供了快速开发应用程序所需的一系列工具和库。在开发 Spring Boot 应用程序时,您可能需要使用本地 JAR 包来添加自定义库或功能。本文将介绍在 Spring Boot 项目的 POM 文件中如何引入本地 JAR 包。

引入本地 JAR 包

在 Spring Boot 项目的 POM 文件中引入本地 JAR 包,您可以使用 system 作用域。system 作用域指定了依赖项需要从本地文件系统中获取,而不是从 Maven 仓库中获取。以下是在 Spring Boot 项目的 POM 文件中引入本地 JAR 包的示例:

xml 复制代码
<dependency>
  <groupId>com.example</groupId>
  <artifactId>mylib</artifactId>
  <version>1.0</version>
  <scope>system</scope>
  <systemPath>${project.basedir}/src/main/resources/lib/mylib.jar</systemPath>
</dependency>

在上述示例中,<scope> 元素指定了依赖项的作用域为 system<systemPath> 元素指定了本地 JAR 包的路径,${project.basedir} 变量表示项目根目录的路径。

配置 Maven 插件

通过上面的配置,可以将本地的 JAR 包引入到项目中,但使用范围仅限于本地项目,如果将项目打包到服务器,该 JAR 包也不会被识别的。那是因为,还缺少下面配置:

xml 复制代码
<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <configuration>
    <includeSystemScope>true</includeSystemScope>
  </configuration>
</plugin>

在 Maven 项目的 POM 文件中,<includeSystemScope> 元素用于指定是否在依赖项解析期间包括 system 作用域的依赖项。当设置 <includeSystemScope>true 时,Maven 会在解析依赖项时包括 system 作用域的依赖项;当设置为 false 时,Maven 会忽略 system 作用域的依赖项。

也就是说,增加此配置,JAR 包才能一块被打包到服务器,不加此配置,本地可以运行,但服务器上找不到此 JAR 包。

总结

在 Spring Boot 项目的 POM 文件中引入本地 JAR 包是一项常见的任务。使用 system 作用域和<includeSystemScope> 可以方便地引入本地 JAR 包,但也可能会带来一些潜在的问题,因为 system 作用域的依赖项不是由 Maven 管理的,它们依赖于本地文件系统中的 JAR 文件。如果您需要在不同的机器上部署应用程序,或者本地 JAR 包依赖于其他库,建议您使用 Maven 官方仓库或私有 Nexus 仓库来管理依赖项。


热门专栏

👍 《Python入门核心技术

👍 《IDEA 教程:从入门到精通

👍 《Java 教程:从入门到精通

👍 《MySQL 教程:从入门到精通

👍 《大数据核心技术从入门到精通

相关推荐
cg50172 小时前
Spring Boot 的配置文件
java·linux·spring boot
橘猫云计算机设计5 小时前
基于springboot的考研成绩查询系统(源码+lw+部署文档+讲解),源码可白嫖!
java·spring boot·后端·python·考研·django·毕业设计
有一只柴犬5 小时前
深入Spring AI:6大核心概念带你入门AI开发
spring boot·后端
向阳2565 小时前
SpringBoot+vue前后端分离整合sa-token(无cookie登录态 & 详细的登录流程)
java·vue.js·spring boot·后端·sa-token·springboot·登录流程
XiaoLeisj6 小时前
【MyBatis】深入解析 MyBatis XML 开发:增删改查操作和方法命名规范、@Param 重命名参数、XML 返回自增主键方法
xml·java·数据库·spring boot·sql·intellij-idea·mybatis
风象南6 小时前
SpringBoot实现数据库读写分离的3种方案
java·spring boot·后端
CryptoPP6 小时前
springboot 对接马来西亚数据源API等多个国家的数据源
spring boot·后端·python·金融·区块链
清风絮柳7 小时前
52.个人健康管理系统小程序(基于springboot&vue)
vue.js·spring boot·毕业设计·前后端分离·健康管理系统·个人健康管理系统·个人健康管理小程序
forestsea7 小时前
使用 Spring Boot 和 GraalVM 的原生镜像
java·spring boot·spring native·原生映像
爱的叹息8 小时前
Spring Boot 集成Redis 的Lua脚本详解
spring boot·redis·lua