SpringBoot - 创建可以依赖的JAR包的教程
正常情况下,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 配置了:
