1. Descrição do problema
Como empacotar o pacote jar dependente localmente no jar, conforme mostrado na figura abaixo, o projeto depende dos SDKs de taobao e pdd e os importa localmente para o projeto:
<!-- 淘宝客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>
Dois, a solução
Depende de qual pacote jar você deseja fazer. Se for um projeto springboot, empacote-o em um jar executável e configure-o da seguinte forma:
<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 é definido como true e, se for empacotado em um pacote jar normal, a configuração será a seguinte:
<resources>
<resource>
<!--本地jar的目录-->
<directory>lib</directory>
<!--打包时,目标jar存放位置-->
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
Quando o pacote jar for empacotado, o pacote jar local será empacotado no diretório BOOT-INF/lib/.