Springboot 如何将本地jar包打入 jar包中的BOOT-INF\lib 目录下

1,022 阅读1分钟

要将本地 JAR 包打包到 Spring Boot 项目中,并确保它位于生成的 JAR 文件的 BOOT-INF/lib 目录下,可以通过以下几种方法实现。Spring Boot 使用 BOOT-INF/lib 目录来存放应用程序依赖项。默认情况下,spring-boot-maven-plugin 会将 Maven 依赖打包到该目录,但本地 JAR 文件(例如通过 <scope>system</scope> 引入的 JAR 文件)需要显式处理。

以下是解决方案和步骤:

方案 1:通过 maven-resources-plugin 复制 JAR 文件到 BOOT-INF/lib 目录

1.1. 将本地 JAR 文件放到项目目录中

假设你已经将本地 JAR 文件(例如 local-library.jar)放在 libs 目录下,项目结构大致如下:

css
复制代码
src/
  └─ main/
      ├─ java/
      ├─ resources/
      └─ libs/
          └─ local-library.jar  <-- 本地 JAR 文件

1.2. 配置 maven-resources-plugin 将本地 JAR 文件复制到 BOOT-INF/lib 目录

使用 maven-resources-plugin 来确保 JAR 文件在构建过程中被复制到 BOOT-INF/lib 目录。你需要在 pom.xml 中配置该插件。

xml
复制代码
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.1.0</version>
            <executions>
                <execution>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/classes/BOOT-INF/lib</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${project.basedir}/libs</directory>
                                <includes>
                                    <include>*.jar</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

在上述配置中,maven-resources-plugin 会将 libs 目录中的所有 .jar 文件复制到 BOOT-INF/lib 目录。

1.3. 配置 Spring Boot 插件

确保在 pom.xml 中配置了 spring-boot-maven-plugin,它会将所有依赖和资源打包到最终的 JAR 文件中。

xml
复制代码
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

1.4. 执行打包命令

然后,运行以下命令来构建项目:

bash
复制代码
mvn clean package

这会创建一个可执行的 JAR 文件,并将本地 JAR 文件(local-library.jar)包含在 BOOT-INF/lib 目录中。