在maven中引入本地jar包的步骤

 更新时间:2021年04月09日 11:30:01   作者:Houtaroy  
这篇文章主要介绍了在maven中引入本地jar包的步骤,帮助大家更好的理解和学习使用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: 包含文件, *.*为所有

以上就是在maven中引入本地jar包的步骤的详细内容,更多关于maven中引入本地jar包的资料请关注脚本之家其它相关文章!

相关文章

  • javabean 中使用@Transient属性处理临时字段

    javabean 中使用@Transient属性处理临时字段

    @Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性,本文给大家介绍javabean 中临时字段的处理:@Transient,感兴趣的朋友跟随小编一起看看吧
    2023-08-08
  • Java中Map.entry的具体使用

    Java中Map.entry的具体使用

    Map.Entry 是Map中的一个接口,Map.Entry里有相应的getKey和getValue方法,让我们能够从一个项中取出Key和Value,本文就详细的介绍一下Map.entry的具体使用,感兴趣的可以了解一下
    2023-05-05
  • 详解SpringBoot中JdbcTemplate的事务控制

    详解SpringBoot中JdbcTemplate的事务控制

    JdbcTemplate是spring-jdbc提供的数据库核心操作类,那对JdbcTemplate进行事务控制呢,本文就详细的介绍一下
    2021-09-09
  • Linux安装JDK两种方式详细教程(附图)

    Linux安装JDK两种方式详细教程(附图)

    这篇文章主要给大家介绍了关于Linux安装JDK两种方式详细教程的相关资料,Linux的使用相信大家都要用到java吧,在使用java前我们得先安装jdk以及配置环境变量等工作,需要的朋友可以参考下
    2023-11-11
  • Java中super关键字的用法和细节

    Java中super关键字的用法和细节

    大家好,本篇文章主要讲的是Java中super关键字的用法和细节,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • JAVA像SQL一样对List对象集合进行排序

    JAVA像SQL一样对List对象集合进行排序

    这篇文章主要介绍了JAVA像SQL一样对List对象集合进行排序的实现方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • springmvc+kindeditor文件上传实例详解

    springmvc+kindeditor文件上传实例详解

    这篇文章主要为大家详细介绍了springmvc+kindeditor文件上传实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • 基于@Table注解无法使用及报红的解决

    基于@Table注解无法使用及报红的解决

    这篇文章主要介绍了基于@Table注解无法使用及报红的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • MyBatis解决模糊查询包含特殊字符问题

    MyBatis解决模糊查询包含特殊字符问题

    这篇文章主要介绍了MyBatis解决模糊查询包含特殊字符问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 浅谈SpringCloud Alibaba和SpringCloud的区别

    浅谈SpringCloud Alibaba和SpringCloud的区别

    这篇文章主要介绍了浅谈SpringCloud Alibaba和SpringCloud的区别,Spring Cloud Netflix框架也属于Spring Cloud,但是Netflix并不是由spring来进行开发的,需要的朋友可以参考下
    2023-05-05

最新评论