Maven は jar をパックし、ローカルの jar パッケージをパックし、Maven はローカルの jar パッケージをパックします

1. 問題の説明

ローカルに依存する 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>

2、解決策

どのような 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/ ディレクトリにパッケージ化されます。

おすすめ

転載: blog.csdn.net/mashangzhifu/article/details/118379676