在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


猜你喜欢
- 一、新时间日期API常用、重要对象介绍ZoneId: 时区ID,用来确定Instant和LocalDateTime互相转换的规则Instan
- 为帮助开发者更方便、更安全地开发和调试基于微信的网页,微信推出了 web 开发者工具。它是一个桌面应用,通过模拟微信客户端的表现,使得开发者
- 运行在TCP之上常见的网络应用协议有比如HTTP、FTP、SMTP、POP3、IMAP。TCP是TCP/IP体系中最重要的传输协议,它提供全
- 这篇文章主要介绍了springmvc处理模型数据ModelAndView过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一
- 一.代码实现1. “Activity_11\src\yan\activity_11\MainActivity.java”pack
- //Annotation configuration dwr servletprivate void initializeDwrServle
- 在Scala中调用java的方法,很简单,直接导入传递参数就可以进行调用了.在Java中调用Scala的方法呢?经过测试,也是很简单,静态方
- synchronized 和 Reentrantlock多线程编程中,当代码需要同步时我们会用到锁。Java为我们提供了内置锁(synchr
- 阅读提示 具有mybatis基础,熟练使用mybatis-plus。概述 我们都知道,mybatis-plus是一个mybatis的增强
- 市面上有好多的类比ListView刷新数据的开源框架,如:v4包自带的SwipeRefreshLayout ,以及集ListView、Gri
- 说明本实例能够监控聚划算的抢购按钮,在聚划算整点聚的时间到达时自动弹开页面(URL自己定义)。可以自定义监控持续分钟数,同时还可以通过多线程
- 最近因为fastjson安全漏洞,升级jar包时,踩了一些坑。新版本FastJsonHttpMessageConverter初始化,默认设置
- 本文实例讲述了C#实现HTTP上传文件的方法。分享给大家供大家参考。具体实现方法如下:发送文件代码如下:/// <summary>
- mybatis foreach嵌套if标签代码实现:Mapper.java文件List<Map<String, Object&g
- 实现HandlerInterceptor接口或者继承HandlerInterceptor的子类,比如Spring 已经提供的实现了Handl
- 类加载器的分类。试验:使用maven打包<build> <plugins> <plu
- Android通过scheme跳转界面,应该如何实现?需求通过后台返回链接地址eg: app://com.bobo.package/path
- 本文是vhr系列的第十二篇,项目地址 https://github.com/lenve/vhr邮件发送也是一个老生常谈的问题了,代码虽然简单
- 概述Selenium是一款免费的分布式的自动化测试工具,支持多种开发语言,无论是C、 java、ruby、python、或是C# ,你都可以
- Java原生SPI面向接口编程+策略模式实现建立接口Robotpublic interface Robot { /