繁体   English   中英

如何从目标/生成源创建包含类的Spring Boot胖JAR

[英]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应用程序:

springboot

请帮助并提前感谢您!

Spring Boot Fat Jar是成品的展开包装 ,而不是传统意义上的jar(名称可能有点误导,可能出于历史原因)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM