要将本地 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
目录中。