IDEA + Spring Boot 多模块项目搭建

本文详细介绍了如何使用IDEA和Spring Initializr创建一个多模块的SpringBoot项目,包括环境配置、父工程与子模块的创建、依赖管理以及项目打包过程。通过这个教程,你可以了解到如何构建一个包含控制层、业务层和数据持久层的模块化项目,并最终打包为可部署的jar文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

环境介绍

创建父工程

创建子模块

项目打包


环境介绍

1、开发环境:IDEA + Java JDK 1.8 + Spring boot 2.5.6.RELEASE

2、多模块项目目录结构:请求控制层(controller),业务逻辑层(server),数据持久层(dao)。

3、项目演示源码:basic: IDEA + Spring Boot 多模块项目搭建演示

创建父工程

1、创建父工程:File -> New -> Project...,选择 Spring Initializr -> Next -> 填写项目信息 -> Next -> 依赖先不用选择 -> Next -> Finish。

2、删除父项目中无用的 .mvn 目录、src 目录、mvnw 及 mvnw.cmd 文件。

3、修改父项目 pom.xml 文件,多模块项目架构时,父项目打包类型 packaging 必须指定为 pom。

在线演示源码:pom.xml · 汪少棠/basic - Gitee.com

创建子模块

一:创建子模块

1、选择父项目右键 -> New -> Module,创建三个子工程 模块:basic-controller、basic-server、basic-dao,分别表示控制层/web层、业务层、持久化层。

2、子工程全部使用 Spring Initializr  的方式进行创建,下面以 basic-dao 为例进行演示,其余的也是同理。创建的同时可以指定依赖 比如 dao 模块可以指定数据库依赖,web 模块可以指定 web 依赖,也可以创建后再添加依赖。

3、修改子模块中的父工程,删除默认的 spring-boot-starter-parent,改为自己的父项目子模块中删除默认的 relativePath 标签,此时默认是 ../pom.xml,会从本地路径中获取 parent 的 pom。

    <parent>
        <groupId>com.wmx</groupId>
        <artifactId>basic</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <!--子模块中删除默认的 relativePath 标签-->
    </parent>

4、修改父项目 pom.xml 文件,添加 modules 指定子模块:

    <!--多模块架构时,父项目必须是 pom 类型-->
    <packaging>pom</packaging>
    <!--指定子模块-->
    <modules>
        <module>basic-dao</module>
        <module>basic-server</module>
        <module>basic-web</module>
    </modules>

 二:修改配置与依赖

1、删除 web 模块以外的启动类和 application.properties 配置文件,整个项目只需要一个启动类和一个配置文件。

2、删除子模块中默认的 spring-boot-starter、spring-boot-starter-test 依赖,因为它们在父项目中已经存在了。

3、添加子模块的依赖,basic-controller 依赖 basic-server,basic-server 依赖 basic-dao。

4、多模块项目中并不是每一个子模块都需要打成可执行的 Jar 包,通常只是 web 模块才需要,所以需要将 web 模块外的启动类删了,同时修改 web 模块外的项目(包括父项目),删除其中的打包插件 spring-boot-maven-plugin。

    <build>
        <plugins>
            <!--打包插件,除了需要打包成可执行 jar/war 的模块,其它模块包括父项目全部删除此插件.-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

项目打包

1、从浏览器访问 web 层接口,web 层调用 server 层,server 调用 dao 层进行测试。

2、最后开发好的项目需要打包成可执行的 jar 才能部署到生产环境,需要的就是其中的 web 模块项目。

3、子模块的构建顺序受两个因素影响:
    1、父模块中各子模块的声明次序,优先级由上到下
    2、子模块间的依赖关系,被依赖的先执行

4、可以直接在父项目里执行 maven 命令,此时所有子模块会执行相同的命令,一次构建全部模块,当然每个子模块逐个执行也是可以的。

5、打包时使用 mvn clean package -Dmaven.test.skip=true 忽略测试类进行打包,测试代码不会影响项目发布,但是会影响项目的打包。

 6、mvn clean package -Dmaven.test.skip=true 命令行打包演示:basic-web/src/main/resources/static/maven 命令打包.txt · 汪少棠/basic - Gitee.com

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蚩尤后裔-汪茂雄

芝兰生于深林,不以无人而不芳。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值