当前位置: 首页 > 知识库问答 >
问题:

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

臧烨烁
2023-03-14

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

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

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

这是mvn清洁安装后的Spring Boot应用程序:

Spring靴

请大家帮忙,提前感谢!

共有1个答案

终祯
2023-03-14

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

您应该强烈考虑将胖jar创建步骤移到打包步骤中(而不是在单独的Maven模块中),并进行之前需要的所有修改。

 类似资料:
  • 我有一个maven项目,我使用MapSTRt来生成映射器,以帮助将实体转换为DTO,反之亦然。这个映射器是在maven的生成源阶段生成的,并存储到目标/生成源和目标/AppName/WEB-INF/类文件夹中。 例如,我有一个映射器 我配置了MapSTRt以使用CDI,因此它将生成以下内容: 它在Wildfly服务器上运行时工作得非常完美,问题是我正在尝试junit测试这个类,为此,我实现了一个定

  • 所以我有一个多项目设置,看起来像这样

  • 问题内容: 我正在寻找以下所有替代方案,以创建一个包含1到N的JavaScript数组,其中N仅在运行时才知道。 在我看来,应该有一种没有循环的方法。 问题答案: 如果我能得到想要的结果,则需要一个数字数组,以后可以循环使用。 如果这是您所需要的,您可以代替吗? 然后在您要使用它时…(未优化,例如) 例如,如果您不需要在数组中 存储 任何内容,则只需要一个长度合适的容器即可进行迭代……这可能会更容

  • 问题内容: 如果我有一个字符串,并且想要创建一个最初 仅 包含该字符串的集合,那么是否有比以下方法更Python化的方法? 以下是给我的一组字母: 问题答案: 在2.7和3.x中,可以使用:

  • 我试图为一个包含不同类型对象数组的对象定义一个swagger模式定义。 下面是模板对象(以及所有相关对象类型)的 json 架构。我知道 swagger 不支持 oneOf 谓词,所以我只是想弄清楚如何在 swagger 中描述这个数据结构。我已经尝试了这种语法的许多变体,但没有一个有效,这是我根据规范和这里找到的一些例子所能达到的最接近的:http://json-schema.org/examp

  • 我的目的是为我的cucumberguice单元测试生成EntityManager和Logger SFL4J实现。 我创建了以下资源生成器 现在,我想我应该使用AbstractModule的实现来绑定这些类,所以:公共类ServiceModule将AbstractModule{@Override protected void configure(){bind(EntityManager.class)