springboot pom引入第三方lib包并打包

文章介绍了如何在项目中创建lib目录存放第三方库,并在pom.xml中配置系统路径引用。通过使用spring-boot-maven-plugin插件,设置includeSystemScope为true,可以将本地lib包打包进最终的jar文件,确保运行时包含所有依赖。

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

一、在项目根目录创建lib目录并放入第三方lib包

 二、pom中引入第三方lib


        <!-- 自定义引入jar -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
            <scope>system</scope>
            <systemPath>${pom.basedir}/lib/commons-io-2.6.jar</systemPath>
        </dependency>

<scope>system<scope>表示依赖不是由maven仓库,而是本地的jar包

 <systemPath>${pom.basedir}/lib/commons-io-2.6.jar</systemPath>指向jar包位置即可

${pom.basedir}表示项目根目录

目前以上操作仅仅idea可运行调试,但是打成jar包实际第三方lib并未引入

三、将第三方lib也打入jar包

pom中加上如下代码

    <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <includeSystemScope>true</includeSystemScope>
                    <mainClass>com.henyi.mqtt.MqttTransferApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
    </plugins>

 <includeSystemScope>true</includeSystemScope>表示把本地的lib包也放进来

<mainClass>com.henyi.mqtt.MqttTransferApplication</mainClass> 指向我们启动类即可

此时执行maven的package/install命令生成jar,解压查看可见已经打入

### 如何在 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、付费专栏及课程。

余额充值