尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Maven 多模块项目与 Spring Boot 结合指南 - 教程

Maven 多模块项目与 Spring Boot 结合指南 - 教程
📅 发布时间:2026/6/20 8:43:17

Maven 多模块项目与 Spring Boot 结合指南

目录

  • 项目概述
  • Maven 项目结构
  • 父模块 POM 配置
  • 子模块 POM 配置
  • 依赖管理机制
  • Spring Boot 与 Maven 的结合
  • 实战总结

项目概述

本文档以 RuoYi-Vue-SQLServer-C 项目为例,讲解 Maven 多模块项目的管理方式以及如何与 Spring Boot 结合。这是一个典型的企业级 Spring Boot 多模块项目。


Maven 项目结构

整体结构

RuoYi-Vue-SQLServer-C (父模块/聚合模块)
├── pom.xml (父POM - 统一管理依赖版本)
├── ruoyi-admin (子模块 - Web服务入口,启动模块)
│   └── pom.xml
├── ruoyi-common (子模块 - 通用工具)
│   └── pom.xml
├── ruoyi-framework (子模块 - 框架核心)
│   └── pom.xml
├── ruoyi-system (子模块 - 系统业务模块)
│   └── pom.xml
├── ruoyi-quartz (子模块 - 定时任务)
│   └── pom.xml
└── ruoyi-generator (子模块 - 代码生成器)└── pom.xml

模块依赖关系图

ruoyi-admin (启动模块)├─ ruoyi-framework│   ├─ ruoyi-system│   │   └─ ruoyi-common│   └─ ruoyi-common├─ ruoyi-quartz│   └─ ruoyi-common└─ ruoyi-generator└─ ruoyi-common

说明:

  • ruoyi-admin 是启动模块,包含 main 方法
  • ruoyi-common 是基础模块,被其他模块依赖
  • 依赖具有传递性,ruoyi-admin 可以使用所有间接依赖的模块

父模块 POM 配置

父模块的 pom.xml 文件是整个项目的核心配置文件,负责统一管理所有子模块的依赖版本。

1. 基本信息配置

<?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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion><!-- 项目坐标 --><groupId>com.ruoyi</groupId><artifactId>ruoyi</artifactId><version>3.9.0</version><!-- 项目名称和描述 --><name>ruoyi</name><description>若依管理系统</description><!-- 打包方式必须是 pom --><packaging>pom</packaging></project>

关键点:

  • groupId: 组织/公司的唯一标识,通常使用域名倒写(如 com.ruoyi)
  • artifactId: 项目的唯一标识
  • version: 项目版本号
  • packaging: 父模块必须设置为 pom

2. 声明子模块

<modules>
<module>ruoyi-admin</module>
<module>ruoyi-framework</module>
<module>ruoyi-system</module>
<module>ruoyi-quartz</module>
<module>ruoyi-generator</module>
<module>ruoyi-common</module>
</modules>

说明:

  • <modules> 标签用于声明所有子模块
  • <module> 的值是子模块的目录名
  • Maven 会按照声明顺序构建子模块

3. 统一管理属性(properties)

<properties><!-- 项目版本 --><ruoyi.version>3.9.0</ruoyi.version><!-- 编码配置 --><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><!-- Java 版本 --><java.version>1.8</java.version><!-- Spring Boot 版本 --><spring-boot.version>2.5.15</spring-boot.version><!-- 第三方依赖版本 --><druid.version>1.2.23</druid.version><swagger.version>3.0.0</swagger.version><pagehelper.boot.version>1.4.7</pagehelper.boot.version><fastjson.version>2.0.58</fastjson.version><jwt.version>0.9.1</jwt.version><!-- 覆盖 Spring Boot 默认版本 --><tomcat.version>9.0.108</tomcat.version><logback.version>1.2.13</logback.version><spring-security.version>5.7.14</spring-security.version></properties>

优点:

  • 统一管理所有依赖的版本号
  • 便于版本升级,只需修改一处
  • 子模块可以通过 ${变量名} 引用

4. 依赖管理(dependencyManagement)

这是 Maven 多模块项目的核心机制!

<dependencyManagement><dependencies><!-- Spring Boot 依赖管理 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><!-- Spring Framework 依赖管理 --><dependency><groupId>org.springframework</groupId><artifactId>spring-framework-bom</artifactId><version>${spring-framework.version}</version><type>pom</type><scope>import</scope></dependency><!-- 第三方依赖 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>${druid.version}</version></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>${pagehelper.boot.version}</version></dependency><!-- 项目内部模块依赖 --><dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-common</artifactId><version>${ruoyi.version}</version></dependency><dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-framework</artifactId><version>${ruoyi.version}</version></dependency><dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-system</artifactId><version>${ruoyi.version}</version></dependency></dependencies></dependencyManagement>

重要理解:

特性说明
只声明不引入dependencyManagement 中的依赖不会被实际引入项目
统一版本管理所有子模块引用时不需要指定版本号
版本优先级子模块可以覆盖父模块定义的版本
BOM 支持可以通过 scope=import 导入其他项目的依赖管理

BOM(Bill of Materials)说明:

  • spring-boot-dependencies 是 Spring Boot 的依赖清单
  • type=pom + scope=import 表示导入该 POM 的依赖管理
  • 这样可以继承 Spring Boot 官方定义的所有依赖版本

5. 构建配置

<build><plugins><!-- Maven 编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>${java.version}</source><target>${java.version}

相关新闻

  • 洛谷 P1271:选举学生会 ← 计数排序
  • 2025吹塑制品厂家实力榜:东莞石排盛林塑胶厂以精密中空吹塑领跑,六大高潜力本土品牌核心优势深度解析
  • 使用Kali进行DOS攻击

最新新闻

  • 中原卖黄金避坑要点,实体店资质辨别教程合扬全程公开鉴价 - 奢侈品交易观察员
  • 用什么方法把照片改为385*441像素?证件照规格调整经验 - 像素测评
  • Gitee Pages迁移与Jekyll博客重生(从零到一实战)
  • 2026年宁波黄金回收门店排行榜top5 鄞州海曙江北靠谱变现门店测评 - 名奢变现站
  • 术语俗话 --- 进程/线程/协程
  • 即梦Seedance 2.0实测指南:节奏锚点、骨骼权重与帧连续性调优

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号