如何创建一个包含来自目标/生成源的类的 Spring Boot 胖 JAR



我想创建一个包含来自目标/生成源的类的 Spring Boot 胖 JAR。之后,我想将此 JAR 添加为另一个应用程序中的依赖项,并在另一个应用程序中使用来自目标/生成源的类。

所以我有一个 Spring Boot 应用程序,经过mvn clean install一些类正在生成,因为我使用的是 Swagger codegen 插件。经过几个小时的搜索,如何创建一个包含src/main/java中所有类的Spring Boot胖JAR,因为你知道Spring Boot胖JAR不是标准的Java JAR,并且所有类都在JAR的BOOT-INF文件夹中,并且在pom中添加一些代码之前,您无法将它们导入到另一个应用程序中.xml。但是这个胖 JAR 仍然不包含来自目标/生成源的类,我需要这些类,因为我想将它们导入到另一个项目中。

这是我想创建胖 JAR 的 Spring Boot 项目的 pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.7.RELEASE</version>
<relativePath/> 
</parent>
<groupId>com.example.spring</groupId>
<artifactId>spring-boot-swagger</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring-boot-swagger</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
..............
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>repackage</id>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
...................

</plugins>
</build>
</project

mvn clean install之后,创建了 2 个 JAR,它们被添加到本地存储库中,一个是带有 BOOT-INF 文件夹的 JAR,另一个是包含来自 src/main/java 的类的 JAR。但它不包含来自目标/生成源的类。我想要一个包含来自 src/main/java 的类以及来自目标/生成源的类的 JAR,因为我想将此 JAR 作为依赖项添加到另一个应用程序中并导入这些类。

这是mvn clean install之后的 Spring 启动应用程序:

弹簧靴

请帮助并提前感谢您!

Spring Boot Fat Jar是成品的部署包装,而不是传统意义上的Jar(这个名字有点误导,可能是出于历史原因)。

您应该强烈考虑将胖罐创建步骤移到打包步骤中(可能在单独的 Maven 模块中),并在此之前进行所有必要的修改。

最新更新