maven打包本地jar到项目中的方法实现

 更新时间:2023年06月29日 08:57:44   作者:Emanon  
本文主要介绍了maven打包本地jar到项目中的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在maven项目中,我们的项目依赖一般取自local的repository或者远程的repository,比如下面这个配置:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.3.0</version>
</dependency>

一般而言,maven会先去本地的repository寻找,如果找不到,就会依据<repository>的定义,去远程的repository去找依赖。

不过有时候,我们依赖的jar并不在任何repository中,可能就是从第三方下载的1个sdk,怎么办?

image.png

比如上面拼多多的sdk并没有提供maven依赖坐标,而是直接提供了1个下载地址。

maven有办法处理这种情况,它支持systemscope的定义方式,可以加载本地任意路径下的jar包。

1.直接将sdk下载到本地,在maven项目的根目录中新建1个lib文件夹。将下载的sdk拷贝到lib文件夹里。

image.png

2.修改pom文件,添加如下依赖

image.png

<dependency>
    <groupId>pdd</groupId>
    <artifactId>pop-sdk</artifactId>
    <type>jar</type>
    <version>1.15</version>
    <scope>system</scope>
    <systemPath>${pom.basedir}/lib/pop-sdk.jar</systemPath>
</dependency>

其中groupId和artifactId都可以自定义,systemPath配置的是我们maven项目的根目录下lib文件夹中的jar。

3.如果发现有些配置文件没有拷贝到打的jar中,可以修改pom文件,添加如下依赖。

<resources>
    <resource>
        <directory>${project.basedir}/lib</directory>
        <targetPath>/BOOT-INF/lib/</targetPath>
        <includes>
            <include>**/*.jar</include>
        </includes>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
        <targetPath>/BOOT-INF/classes</targetPath>
        <includes>
            <include>**/**</include>
        </includes>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>false</filtering>
    </resource>
</resources>

这一步并不是必要的,我添加了下面的配置是因为打包以后apollo配置文件app.properties没拷贝到项目中导致拉取配置失败,项目没有启动起来。

到此这篇关于maven打包本地jar到项目中的方法实现的文章就介绍到这了,更多相关maven打包本地jar 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中MyBatis Plus知识点总结

    Java中MyBatis Plus知识点总结

    在本篇文章里小编给大家整理一篇关于Java中MyBatis Plus知识点总结,需要的朋友们参考下。
    2019-10-10
  • Mybatis批量更新对象数据的两种实现方式

    Mybatis批量更新对象数据的两种实现方式

    这篇文章主要介绍了Mybatis批量更新对象数据的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • SpringBoot项目如何打包部署到服务器

    SpringBoot项目如何打包部署到服务器

    这篇文章主要介绍了SpringBoot项目如何打包部署到服务器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-03-03
  • Spring Security实现验证码登录功能

    Spring Security实现验证码登录功能

    这篇文章主要介绍了Spring Security实现验证码登录功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 关于Java中避免空指针的方法

    关于Java中避免空指针的方法

    这篇文章主要介绍了关于Java中避免空指针的方法,空指针异常就是我们在对空对象进行的任何操作都会报空指针异常,所谓的指针,就是java中的对象的引用,比如String s;这个就是指针,需要的朋友可以参考下
    2023-07-07
  • SpringBoot项目依赖和配置最新示例讲解

    SpringBoot项目依赖和配置最新示例讲解

    这篇文章主要介绍了SpringBoot项目依赖和配置,这里主要是搭建项目常用到的maven依赖以及搭建项目会需要用到的一些配置文件,本文通过示例代码给大家详细讲解,需要的朋友可以参考下
    2022-11-11
  • 详解Spring Data Jpa当属性为Null也更新的完美解决方案

    详解Spring Data Jpa当属性为Null也更新的完美解决方案

    这篇文章主要介绍了详解Spring Data Jpa当属性为Null也更新的完美解决方案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • 解决maven打包失败:程序包xxxx不存在问题

    解决maven打包失败:程序包xxxx不存在问题

    这篇文章主要介绍了解决maven打包失败:程序包xxxx不存在问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java synchronized与CAS使用方式详解

    Java synchronized与CAS使用方式详解

    提到Java的知识点一定会有多线程,JDK版本不断的更迭很多新的概念和方法也都响应提出,但是多线程和线程安全一直是一个重要的关注点。比如说我们一入门就学习的synchronized怎么个实现和原理,还有总是被提到的CAS是啥,他和synchronized关系是啥?请往下看
    2023-01-01
  • Java实现TCP和UDP协议详解

    Java实现TCP和UDP协议详解

    这篇文章主要介绍了Java实现TCP和UDP协议详解,TCP(传输控制协议)和UDP(用户数据报协议)是两种最常用的传输层协议,它们都用于在网络上传输数据,但是它们之间有很多不同之处,需要的朋友可以参考下
    2023-07-07

最新评论