在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

标签:maven,jar,包
0
投稿

猜你喜欢

  • Java使用Scanner类进行控制台输入实现方法

    2021-08-08 18:34:26
  • 浅谈C# StringBuilder内存碎片对性能的影响

    2023-12-15 08:55:47
  • java mybatis如何操作postgresql array数组类型

    2023-04-25 22:59:37
  • Activity取消界面切换的默认动画方法(推荐)

    2021-05-23 12:12:52
  • Java并发编程之浅谈ReentrantLock

    2022-08-25 10:46:02
  • C#邮件定时群发工具Atilia用法实例

    2022-06-13 11:50:24
  • bs架构和cs架构的区别_动力节点Java学院整理

    2021-09-18 22:06:18
  • Java输入年份和月份判断多少天实例代码

    2023-12-23 10:43:11
  • java中的GC收集器详情

    2021-11-22 16:59:34
  • MybatisPlus实现简单增删改查功能

    2021-12-27 06:25:21
  • Spring Cloud中FeignClient实现文件上传功能

    2023-06-23 07:57:09
  • 深入理解Android中的建造者模式

    2023-06-27 05:55:17
  • 详解C#如何加密解密RAR文件

    2023-09-19 16:25:10
  • servlet实现文件上传、预览、下载、删除功能

    2023-11-16 21:52:48
  • Java 基础语法

    2021-09-21 19:26:32
  • C# 无边框窗体之窗体移动实现代码

    2021-07-22 04:36:48
  • Java集合的总体框架相关知识总结

    2021-06-25 10:43:36
  • 详解Java中LinkedHashMap

    2022-05-23 16:24:45
  • 一文理解Android系统中强指针的实现

    2022-03-11 11:37:02
  • Android PopupWindow 点击外面取消实现代码

    2022-02-04 20:52:05
  • asp之家 软件编程 m.aspxhome.com