在maven中引入本地jar包的步骤
作者:Houtaroy 发布时间:2023-11-25 10:43:44
目录
1 起因
2 解决方案
2.1 在pom中引入
2.2 Spring Boot 打包处理
2.3 拓展: Spring Boot 打包加入其它资源
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: 包含文件, *.*为所有
来源:https://juejin.cn/post/6948362324063305759
猜你喜欢
- 我就废话不多说了,大家还是直接看代码吧~//执行的是删除信息的操作 String a=request.getParameter("
- Java停止线程的逻辑(协同、通知)在Java程序中,我们想要停止一个线程可以通过interrupt方法进行停止。但是当我们调用interr
- 1.微信配置信息 global.properties2.方法wxpay用于生成预支付订单信息方法notifyWeiXinPay用于微信支付成
- 查看JDK1.8 ArrayList的源代码1、默认初始容量为10 /** * Default i
- 今天本文与大家分享如何得到数组中的最大值和最小值的实例。很适合Java初学者复习数组的基本用法与流程控制语句的使用。具体如下:这个程序主要是
- 在项目中使用Maven管理jar包依赖,往往会出现以下状况:1、国内访问maven默认远程中央镜像特别慢;2、使用阿里的镜像替代远程中央镜像
- 优点1.观察者和被观察者是抽象耦合的。2.建立一套触发机制。缺点1.如果一个被观察者对象有很多的直接和间接的观察者的话,将所有的观察者都通知
- 本文是Neward & Associates的总裁Ted Neward为developerworks独家撰稿“你不知道5个……”系列
- Spark Streaming算子开发实例transform算子开发transform操作应用在DStream上时,可以用于执行任意的RDD
- Spring Security提供如下几种认证机制Username & PasswordOAuth2.0 LoginSAML 2.0
- 本文实例讲述了C#数据结构之堆栈(Stack)。分享给大家供大家参考,具体如下:堆栈(Stack)最明显的特征就是“先进后出”,本质上讲堆栈
- 一、叙述当Spring的事件(Application Event)为Bean和Bean之间的消息同步提供了支持。当一个Bean处理完成一个任
- 在Java 8之前,对集合进行排序需要为排序中使用的比较器 Comparator 创建一个匿名内部类:new Compa
- 感觉很久不写模拟器代码了,昨天调试的时候碰了点壁,记录下来,避免大家再跟我犯同样的错误。加入Javascript脚本的地方:HtmlElem
- EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。ehcach
- 用一道选择题作为本文的开始吧! ArrayList list = new ArrayList(20);中的list扩充几次 A.0 B.1
- 原因分析@Anysc注解会开启一个新的线程,主线程的Request和子线程是不共享的,所以获取为null在使用springboot的自定带的
- 面试题1:谈一下你对 Nginx 的理解Nginx 是一款自由的、开源的、高性能的 HTTP 服务器和反向代理服务器;同时也是一个 IMAP
- 1.用intellij idea 创建了一个springboot的项目,前期都运行的好好的,在ide中可以正常运行,但是打包成Jar运行却一
- spring @Autowired注解无法注入问题简述在使用spring框架的过程中,常会遇到这种两情况:1、在扫描的包以外使用需要使用ma