SpringBoot - 创建可以依赖的JAR包的教程
作者:hangge | 2020-02-25 08:10
正常情况下,Spring Boot 项目是一个可以独立运行的项目,也就是说打包的 JAR 是可执行 JAR,它的类放在 BOOT-INF 目录下,如果直接作为其他项目的依赖,会找不到类。

(2)接着对项目进行打包,可以看到 target 目录下会生成两个 JAR:

(2)接着对项目进行打包,可以看到 target 目录下会生成两个 JAR:
(3)对 demo-jar-0.0.1-SNAPSHOT-lib.jar 进行解压,发现里面已经没有 application.properties 配置了:

如果非要将一个 Spring Boot 工程作为另一个项目的依赖,可以通过如下步骤进行操作。
1,创建可以依赖的 JAR 包
(1)编辑项目的 pom.xml 文件,配置 Maven 插件生成一个单独的 artifact,这个单独的 artifact 可以作为其他项目的依赖:
注意:classifier 指定了可执行 JAR 的名字,而默认的 JAR 则作为可以被其他程序依赖的 artifact。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>exec</classifier>
</configuration>
</plugin>
(2)接着对项目进行打包,可以看到 target 目录下会生成两个 JAR:
- demo-jar-0.0.1-SNAPSHOT.jar 是一个可以被其他应用依赖的 JAR
- demo-jar-0.0.1-SNAPSHOT-exec.jar 则是一个可执行 JAR

(3)对 demo-jar-0.0.1-SNAPSHOT.jar 解压可以看到 class 路径变成如下形式,说明它可以直接被其他项目依赖使用:
2,排除不需要的文件
(1)如果将 Spring Boot 项目打包成一个可依赖的 JAR,有些配置文件比如 application.properties 或者 application.yml 等是不需要的,我们可以在打包时将其排除。
下面配置在 maven-jar-plugin 插件中配置排除 application.properties 配置文件。
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>lib</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>lib</classifier>
<excludes>
<exclude>application.properties</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
(2)接着对项目进行打包,可以看到 target 目录下会生成两个 JAR:
- demo-jar-0.0.1-SNAPSHOT.jar 是一个可执行 JAR
- demo-jar-0.0.1-SNAPSHOT-lib.jar 则是一个可以被外部程序依赖的 JAR
(3)对 demo-jar-0.0.1-SNAPSHOT-lib.jar 进行解压,发现里面已经没有 application.properties 配置了:
全部评论(0)