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

spring boot多模块包

慎俊艾
2023-03-14

我试图使用Maven包装Spring Boot与多模块,这里我的主要模块pom.xml:

<modules>
    <module>my-data-services</module>
    <module>my-message-services</module>
    <module>my-common</module>
</modules>
<groupId>com.my</groupId>
<artifactId>my-multi-services</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.2.RELEASE</version>
</parent>


<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
</properties>
<dependencyManagement>....</dependencyManagement>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

我的普通pom。xml:

<parent>
    <artifactId>my-multi-services</artifactId>
    <groupId>com.my</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>my-common</artifactId>
<packaging>jar</packaging>
<dependencies>....</dependencies>

我的数据服务pom.xml:

<parent>
    <artifactId>my-multi-services</artifactId>
    <groupId>com.my</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>my-data-services</artifactId>

<dependencies>

    <dependency>
        <groupId>com.my</groupId>
        <artifactId>my-common</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

#################################################################################################################################

Execution default of goal org.springframework.boot:spring-boot-maven-p
lugin:1.4.2.RELEASE:repackage failed: Unable to find main class 

然后我添加一个主类,这个模块可以打包,但它不是一个lib jar,它像一个可运行的Spring引导罐

 -BOOT-INF
 |
 -META-INF
 |
 -org

异常抛出

执行目标组织失败。阿帕奇。专家plugins:maven编译器-plugin:3.1:projectmydataservices上的compile(默认编译):编译失败:编译失败:packagecom。我的常见的UTIL不存在

com。我的常见的utils位于模块my common

如何解决这个问题,以及在Spring引导多模块项目中,如何在没有BOOT-INF的情况下打包一个通用的utils库

共有1个答案

司寇旺
2023-03-14

发生这种情况是因为您的模块将添加“Spring引导maven-plugin”,因为它是在它们的父级中定义的。

您需要做的是将所有内容移动到子模块中,甚至是应用程序启动程序类。我通常是如何做到这一点的:

    ##########################################################################################################
    • my-service模块
    • 我的公共模块
    • my-web-模块(或非web应用程序中的my-runtime模块)

    my parent模块将“spring boot starter parent”作为其父模块,但它不会有src文件夹,因为所有内容都被移动到子模块中。

    my-web-模块将依赖于其他模块,并将具有“Spring引导maven-plugin”。您将能够运行的应用程序与'mvnSpring启动:运行'在my-web-模块文件夹中。

 类似资料:
  • 我有一个基本的SpringBoot应用程序。使用Spring初始值设定项、嵌入式Tomcat、Thymeleaf模板引擎,并将包作为可执行的JAR文件。是一个带有Spring Boot的多模块项目,该项目将有3个模块。这里是父模块pom。xml 这里是模块核心 这里是模块web: 从父根目录,我使用以下方法生成所有模块: 但问题是tdk-web-0.0.2-SNAPSHOT。jar不包含tdk-c

  • 父项目为demo-mybatis子模块为mybatis-dao、demo-service。demo-mybatis pom.xml如下: 4.0.0 pom mybatis-DAO Demo-service Demo-mybatis-app org.springframework.Boot spring-boot-starter-parent 2.3.2.release com.example D

  • 我有一个带有myapp-core和myapp-web模块的myapp父pom类型maven项目。myapp-core模块作为依赖项添加到MyApp-Web。 myapp-core模块中的所有类都位于根包com.myapp.core中,而myapp-web模块中的所有类都位于根包com.myapp.web中 主要的application.java也在com.myapp.web包中。由于我的核心模块根

  • 我在教程两个模块的帮助下创建了一个springboot mutimodule项目--一个后端(java类),另一个forntend(angular 5应用程序)我在后端模块中包含了前端模块的依赖项。我正在创建一个jar使用maven资源插件。我也在将静态资源复制到pom.xml中构建目录的静态文件夹中。我还有一个@Controller返回“index”。当我运行jar时,我希望看到index.ht

  • 我正在尝试为一个现有的应用程序编写单元测试用例,该应用程序有多个模块,每个模块中都有主类。有多个类具有\@SpringBootApplication。我写了一个简单的测试用例,它失败了,错误如下。我如何继续我的测试用例中的一个。 java.lang.IllegalStateException:在文件[C:\My Data\Workspace\Services2\MicroServices\Repo

  • 本文向大家介绍SpringBoot多模块项目框架搭建过程解析,包括了SpringBoot多模块项目框架搭建过程解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了SpringBoot多模块项目框架搭建过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建根项目,New Project 创建一个名为 sms-bomber 的 Sp