返回 导航

SpringBoot / Cloud

hangge.com

SpringBoot - 创建可以依赖的JAR包的教程

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

    如果非要将一个 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 路径变成如下形式,说明它可以直接被其他项目依赖使用:
其他项目中如何添加使用这个 jar 包,可以参考我之前写的文章:

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

(3)对 demo-jar-0.0.1-SNAPSHOT-lib.jar 进行解压,发现里面已经没有 application.properties 配置了:
评论

全部评论(0)

回到顶部