在maven中引入本地jar包的步骤
时间:2021-09-18 08:14:32|栏目:JAVA代码|点击: 次
1 起因
在和一些第三方厂商对接的过程中, 偶尔会遇到对方提供的SDK自带maven无法获取的jar包的情况(对于开源激进者的笔者很讨厌这种行为)
我们该如何处理这种情况呢, 其实解决思路很简单:
- 在pom中引入本地jar
- 打包时本地jar包含在内
让我们来看看具体怎么操作吧
idea中虽然可以在项目配置加入, 但打包时会报错, 相关的处理方案不再思考
2 解决方案
首先, 终极解决方案是: 把jar包传到自己的maven私服上
对于没有自己私服的小伙伴们这是句废话, 我们还是来看看实际的吧
2.1 在pom中引入
以下是我个人的解决方案, 先介绍下项目目录:
project
|---src
|---lib
|---pig.jar
|---pom.xml
我们可直接在pom中加入如下引用:
<dependency>
<groupId>cn.com.pig</groupId>
<artifactId>pig</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/pig.jar</systemPath>
</dependency>
其中的groupId, version等内容, 可以在idea中打开jar包, 查看里面的MANIFEST.MF获取
2.2 Spring Boot 打包处理
完成了pom引入后, 直接执行maven的package命令, 会出现找不到pig.jar的问题, 我们继续来进行修改:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--加入这条配置即可-->
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
<build>
2.3 拓展: Spring Boot 打包加入其它资源
在和硬件设备交互时, 我们除了基础的jar包外, 可能还需要引入一些dll文件(当然, 笔者更推荐将这些dll放在项目外部, 引用时通过绝对路径处理)
可以采用下面的方式来加入这些资源:
<resources>
<resource>
<directory>dll</directory>
<targetPath>/BOOT-INF/dll/</targetPath>
<includes>
<include>*.*</include>
</includes>
</resource>
</resources>
对上面的参数进行下讲解:
- directory: 本地路径, dll即project/dll
- targetPath: 打包完成后在jar包中的路径, 如果开头不为/, 默认在classes目录下追加, 例如dll, 则会实际生成在/BOOT-INF/classes/dll, 上面填写的则会打包到/BOOT-INF/dll
- include: 包含文件, *.*为所有


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




