Skip to content
目录概览

多模块项目

如果你是初学者,这部分可以暂时跳过,先不用看,基于单模块熟悉整个 SpringBoot 之后;遇到复杂的项目时,再来了解多模块;

通常我们在开发微服务的时候,会将核心模块拆分为多个小的子模块,各自负责一块儿小的功能,来降低整个系统的耦合度;下面就以本教程项目的结构,来教大家如何创建一个多模块的项目,并完成配置及打包工作;

示例项目:https://github.com/vehang/ehang-spring-boot

部分结构的说明:

由于项目结构模块比较多,本文主要是讲解如何构建一个多模块的项目,部分不相关的模块这里就不进行演示

  • 父模块:ehang-spring-boot

    • 公共模块:spring-boot-005-common
    • 子模块:spring-boot-005-responce-exception 引入spring-boot-005-common
    • 其他子模块...

创建多模块

在前面的第一个 SpringBoot 项目中,我们学会如何创建一个简单的 SpringBoot 项目,有了这个基础项目之后,就可以在下面创建多个模块(module)

下面就来演示一下模块的创建过程:

  • New Module

    选择父模块,右键,创建New --> Module

  • 创建子模块

    子模块的创建步骤和前面通过IDEA创建第一个 SpringBoot 项目的过程是一样的;

  • 调整子模块的依赖

    将父模块的groupId、版本等信息配置到子模块的<parent>

    xml
    <parent>
        <groupId>com.ehang</groupId>
        <artifactId>ehang-spring-boot</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath> <!-- lookup parent from repository -->
    </parent>

  • 父模块中添加<modules>

    将子模块中的name配置到父模块的modules标签中

    xml
    <modules>
        <module>spring-boot-005-common</module>
        <module>spring-boot-005-responce-exception</module>
    </modules>

多模块打包

配置注意项

  • 子模块的<relativePath>

    xml
    <relativePath>../pom.xml</relativePath> <!-- lookup parent from repository -->

  • Maven插件

    • 子模块配置上插件

      xml
      <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>

    • 父模块移除Maven插件

    • 公共模块移除Maven插件

      spring-boot-005-common为公共模块,用于提供给其他模块使用,不单独运行,需要移除Maven插件

    • 添加common模块的依赖

      依赖了common的子模块,需要在pom.xml中添加common的依赖配置项

    • packaging配置为pom

      xml
      <packaging>pom</packaging>

打包

shell
mvn clean package -Dmaven.test.skip=true

打包成功之后,各模块的目录下会出现一个target文件夹,里面回包含对应的jar包

多模块和单模块的创建就讲解完了,有任何问题可以随时交流;

最近在整理SpringBoot的学习教程,如果你也在学习SpringBoot,可以点击查看,欢迎交流!欢迎star

SpringBoot教程:https://github.com/vehang/ehang-spring-boot