当前位置: 首页 > news >正文

tlias智能学习辅助系统--Maven高级-聚合

目录

1. 什么是聚合(Aggregation)

2. 聚合工程的特点

3. Maven 聚合配置

4. 示例项目结构

5. 实战:Maven 多模块项目配置

父工程 tlias-parent 的 pom.xml

6. 关键点解析

7. 开发小贴士


1. 什么是聚合(Aggregation)

定义
聚合就是将多个独立的模块组织成一个整体,通过一次构建命令同时构建多个模块。

作用

  • 快速构建:只需在聚合工程执行 mvn install,即可根据依赖关系自动构建所有子模块。

  • 统一管理:便于集中管理依赖、版本与构建配置。


2. 聚合工程的特点

  • 无业务代码:通常是一个空工程,只包含一个 pom.xml 文件。

  • 统一入口:执行构建命令时,会自动触发所有子模块的构建。

  • 构建顺序自动确定:Maven 会根据模块之间的依赖关系决定构建顺序,与 <modules> 中书写的顺序无关。


3. Maven 聚合配置

在父工程的 pom.xml 中使用 <modules> 指定子模块路径:

<!-- 聚合模块配置 -->
<modules><module>../tlias-pojo</module><module>../tlias-utils</module><module>../tlias-web-management</module>
</modules>

注意

  • 路径是相对于父工程 pom.xml 的相对路径

  • 子模块必须有自己的 pom.xml 文件


4. 示例项目结构

tlias-parent (父工程 / 聚合工程)
├── tlias-pojo
├── tlias-utils
└── tlias-web-management

5. 实战:Maven 多模块项目配置

假设我们有一个项目 web-ai-project03,采用如下结构:

  • 父工程tlias-parent(聚合 + 父 POM)

  • 子模块

    • tlias-pojo(实体类模块)

    • tlias-utils(工具类模块)

    • tlias-web-management(Web 管理后台模块)

父工程 tlias-parentpom.xml

<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><!-- 继承 Spring Boot 默认配置 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.10</version><relativePath/></parent><!-- 聚合子模块 --><modules><module>../tlias-pojo</module><module>../tlias-utils</module><module>../tlias-web-management</module></modules><!-- 项目唯一标识 --><groupId>com.itheima</groupId><artifactId>tlias-parent</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging>
</project>

6. 关键点解析

  1. 父工程继承

    • 通过 <parent> 继承 spring-boot-starter-parent,所有子模块自动获得 Spring Boot 的默认依赖和插件配置。

  2. 模块聚合

    • <modules> 中声明的子模块会被一次性构建。

  3. 项目坐标

    • groupIdartifactIdversion 组成了 Maven 工程的唯一坐标,子模块通过继承父 POM 获得这些信息。


7. 开发小贴士

  • 聚合工程不仅能构建多个模块,还能结合 继承(Inheritance),在父工程集中管理依赖版本,避免版本冲突。

  • 当子模块路径不在父工程目录下时,要确保 <module> 使用正确的相对路径。

  • 在 CI/CD 中,聚合工程可以作为构建入口,减少构建脚本的复杂度。


总结
Maven 聚合让多模块项目的构建变得简单高效,只需在父工程执行一次构建命令,就能自动处理子模块依赖与构建顺序,适合大型项目的模块化管理。

http://www.dtcms.com/a/329126.html

相关文章:

  • 解决麒麟桌面系统时间不同步问题
  • Linux ARM64 内核解读之内核引导和初始化
  • 算法详细讲解 - 离散化/区间合并
  • AI编程:python测试MQ消息服务联接和消息接收
  • SimD小目标样本分配方法
  • 什么是HTTP的无状态(举例详解)
  • JavaScript 中 let、var、const 的区别详解
  • 如何用外部电脑访问本地网页?
  • Leetcode题解:215,数组中的第k个最大元素,如何使用快速算法解决!
  • 6 ABP 框架中的事件总线与分布式事件
  • 豆包 + 蘑兔 AI:圆你创作歌曲梦​
  • JavaWeb-Servlet基础
  • 4.0 vue3简介
  • 【深入浅出STM32(1)】 GPIO 深度解析:引脚特性、工作模式、速度选型及上下拉电阻详解
  • 【Docker项目实战】使用Docker部署todo任务管理器
  • [AI React Web]`意图识别`引擎 | `上下文选择算法` | `url内容抓取` | 截图捕获
  • Android 双屏异显技术全解析:从原理到实战的多屏交互方案
  • 开发手记:一个支持自动翻译的H5客服系统
  • TeamViewer 以数字化之力,赋能零售企业效率与客户体验双提升
  • 在线 A2C实践
  • 玩转Docker | 使用Docker部署MediaWiki文档管理平台
  • 大文件上传解决方案
  • React useMemo 深度指南:原理、误区、实战与 2025 最佳实践
  • 【SpringBoot系列-01】Spring Boot 启动原理深度解析
  • C->C++核心过渡语法精讲与实战
  • 深度学习——03 神经网络(2)-损失函数
  • Spring Boot 使用 @NotBlank + @Validated 优雅校验参数
  • react+antd+vite自动引入组件、图标等
  • 适配安卓15(对应的sdk是35)
  • 单片机启动流程详细介绍