1. Descripción del problema
Cómo empaquetar el paquete jar dependiente local en el jar, como se muestra en la figura siguiente, el proyecto se basa en los SDK de taobao y pdd, y los importa al proyecto localmente:
<!-- 淘宝客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>
Dos, la solución
Depende del paquete jar que desee crear. Si es un proyecto springboot, empaquetelo en un jar ejecutable y configúrelo de la siguiente manera:
<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 se establece en verdadero y, si está empaquetado en un paquete jar normal, la configuración es la siguiente:
<resources>
<resource>
<!--本地jar的目录-->
<directory>lib</directory>
<!--打包时,目标jar存放位置-->
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
Cuando se empaqueta el paquete jar, el paquete jar local se empaquetará en el directorio BOOT-INF/lib/.