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没拷贝到项目中导致拉取配置失败,项目没有启动起来。

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYMKyjf6' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片