maven打包jar — 将本地jar包也打进去
一、问题描述
如何将本地依赖的jar包也打包到jar里,如下图所示,在项目里依赖了taobao,pdd的sdk,通过本地的方式引入到项目里:
<!-- 淘宝客SDK-->
<dependency>
<groupId>taobao</groupId>
<artifactId>taobao</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${pom.basedir}/lib/taobao-sdk.jar</systemPath>
</dependency>
<!-- 拼多多SDK -->
<dependency>
<groupId>pop</groupId>
<artifactId>pop</artifactId>
<version>1.11.5</version>
<scope>system</scope>
<!-- <systemPath>${project.basedir}/lib/pop-sdk-1.11.5-all.jar</systemPath>-->
<systemPath>${pom.basedir}/lib/pop-sdk-1.11.5-all.jar</systemPath>
</dependency>
二、解决方法
看你要打成什么jar包,如果是springboot项目,打包成可运行的jar,做如下配置:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin>
includeSystemScope设置成true,即可,如果是打包成普通的jar包,配置如下:
<resources> <resource> <!--本地jar的目录--> <directory>lib</directory> <!--打包时,目标jar存放位置--> <targetPath>BOOT-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </resource> </resources>
打成的jar包时,会将本地的jar包打到BOOT-INF/lib/目录里。
