[英]How to create a Spring Boot fat JAR containing classes from target/generated-sources
我想创建一个包含来自目标/生成源的类的Spring Boot胖JAR。 之后,我想将此JAR添加为另一个应用程序中的依赖项,并在另一个应用程序中使用来自目标/生成源的类。
所以我有一个Spring Boot应用程序,并且在mvn clean install
后,由于使用Swagger codegen插件,正在生成一些类。 经过许多小时的搜索,如何创建一个包含src / main / java中所有类的Spring Boot fat JAR,因为您知道Spring Boot fat JAR不是标准的Java JAR,并且所有类都位于BOOT-INF文件夹中JAR,并且您不能将它们导入另一个应用程序,除非您在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。 但是它不包含来自target / generated-sources的类。 我想要一个JAR,其中包含来自src / main / java的类以及来自target / generated-sources的类,因为我想将此JAR添加为依赖项,并将其导入另一个应用程序中。
这是mvn clean install
后的Spring Boot应用程序:
请帮助并提前感谢您!
Spring Boot Fat Jar是成品的展开包装 ,而不是传统意义上的jar(名称可能有点误导,可能出于历史原因)。
您应该强烈考虑将胖子创建步骤转移到包装步骤中(可能在单独的Maven模块中),并在此之前进行所有需要的修改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.