Maven embala o jar e embala o pacote jar local, e maven embala o pacote jar local

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:

insira a descrição da imagem aqui

    <!-- 淘宝客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/.

Acho que você gosta

Origin blog.csdn.net/mashangzhifu/article/details/118379676
Recomendado
Clasificación