SpringBoot在Maven中引入Jar包,并在打包时添加本地Jar包

本文介绍如何在Maven项目中引入本地Oracle包,并确保在打包时能够正确包含这些依赖,避免启动错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

最近在做项目时,用到Oracle包,因为这个包不能通过Maven引入,只能本地引入。但是打包时启动错误,查证后发现本地jar包没有打包进去,整了大半个小时给整好了,特此记录一下,以备用。

引入本地jar包

在 pom.xml 文件中的 dependencies 标签下添加如下代码:

<dependency>
	<groupId>oracle.jdbc.driver.OracleDriver</groupId>
	<artifactId>ojdbc7</artifactId>
	<version>1.0.0</version>
	<scope>system</scope>
	<systemPath>D:/jar/ojdbc7.jar</systemPath>
</dependency>

systemPath 标签表示本地jar包绝对路径。

你也可以放在项目根目录下的 libs 目录下,例如:

<dependency>
	<groupId>oracle.jdbc.driver.OracleDriver</groupId>
	<artifactId>ojdbc7</artifactId>
	<version>1.0.0</version>
	<scope>system</scope>
	<systemPath>${project.basedir}/libs/ojdbc7.jar</systemPath>
</dependency>

${project.basedir} 表示项目根目录。

 

scope几个选项说明:

  • compile:默认的scope,运行期有效,需要打入包中
  • provided:编译期有效,运行期不需要提供,不会打入包中
  • runtime:编译不需要,在运行期有效,需要导入包中。
  • test:测试需要,不会打入包中
  • system:非本地仓库引入、存在系统的某个路径下的jar。

打包时将本地jar包添加进去

在 pom.xml 文件中的 build ➡ plugins 标签下添加如下代码:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
	<configuration>
	    <!--打包时允许添加本地jar包-->
		<includeSystemScope>true</includeSystemScope>
	</configuration>
</plugin>

 

### 如何在 Spring Boot 的 `pom.xml` 中添加本地 JAR 依赖 #### 方法一:使用 Maven 安装插件安装本地 JAR本地仓库添加依赖 对于那些由 Maven 项目导出且带有 POM 文件的 jar ,可以先将其安装至本地 Maven 仓库再正常声明依赖。 1. 使用命令行工具执行以下指令来安装本地 jar本地仓库: ```bash mvn install:install-file \ -Dfile=/path/to/your-jar-file.jar \ -DgroupId=com.example.group \ -DartifactId=example-artifact \ -Dversion=1.0.0 \ -Dpackaging=jar ``` 2. 接着,在项目的 `pom.xml` 文件中的 `<dependencies>` 节点内增加相应的依赖描述: ```xml <dependency> <groupId>com.example.group</groupId> <artifactId>example-artifact</artifactId> <version>1.0.0</version> </dependency> ``` 这种方法适合于拥有标准 Maven 结构和元数据信息(即 POM 文件)的第三方库[^3]。 #### 方法二:直接在 `pom.xml` 配置 system scope 依赖项 当无法获取到正式发布的坐标或者该 Jar 不是来自公共或私有远程仓库而是位于开发者机器上的候,则可以通过指定绝对路径的方式引入本地存在的 jar 文件作为依赖。需要注意的是此方式不推荐用于生产环境构建因为这会降低可移植性和重复利用度。 ```xml <dependency> <groupId>org.apache</groupId> <artifactId>hadoop-client</artifactId> <version>2.5.6</version> <scope>system</scope> <systemPath>${project.basedir}/lib/hadoop-client-2.6.5.jar</systemPath> </dependency> ``` 上述配置中 `${project.basedir}` 是一个内置变量代表当前工程根目录位置;而 `/lib/hadoop-client-2.6.5.jar` 应替换为你实际放置 jar 文件的具体相对路径[^4]。 为了确保这些本地 jar 可以被打入最终的应用程序之中还需要调整 spring-boot-maven-plugin 插件的相关设定以便含此类特殊范围内的资源文件: ```xml <build> ... <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 启用系统作用域下的依赖 --> <includeSystemScope>true</includeSystemScope> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> ... </build> ``` 这段 XML 片段的作用是在重新打包过程中允许将标记为 "system" 类型的外部 jar 打入生成的目标 artifact 内部从而实现运行加载[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值