【Maven】聚合与继承

简介: 【Maven】聚合与继承

1. 聚合工程

什么叫聚合?

  • 聚合:将多个模块组织成一个整体,同时进行项目构建的过程称为聚合
  • 聚合工程:通常是一个不具有业务功能的”空“工程(有且仅有一个pom文件)
  • 作用:使用聚合工程可以将多个工程编组,通过对聚合工程进行构建,实现对所包含的模块进行同步构建
  • 当工程中某个模块发生更新(变更)时,必须保障工程中与已更新模块关联的模块同步更新,此时可以使用聚合工程来解决批量模块同步构建的问题



f9e10c46b6024454bea0664215de14a6.png


2. 聚合工程开发

问题导入

工程的打包方式有哪几种?

2.1 创建Maven模块,设置打包类型为pom

<packaging>pom</packaging>

注意事项:

  1. 每个maven工程都有对应的打包方式,默认为jar,web工程打包方式为war

2.2 设置当前聚合工程所包含的子模块名称

<modules>
    <module>../maven_ssm</module>
    <module>../maven_pojo</module>
    <module>../maven_dao</module>
</modules>

注意事项:

  1. 聚合工程中所包含的模块在进行构建时会根据模块间的依赖关系设置构建顺序,与聚合工程中模块的配置书写位置无关。
  2. 参与聚合的工程无法向上感知是否参与聚合,只能向下配置哪些模块参与本工程的聚合。


3. 继承关系

问题导入

什么叫继承?

  • 概念:
  • 继承描述的是两个工程间的关系,与java中的继承相似,子工程可以继承父工程中的配置信息,常见于依赖关系的继承
  • 作用:
  • 简化配置
  • 减少版本冲突



  • 64b124ee3389478e96668b2001e04690.png

4. 继承关系开发

4.1 创建Maven模块,设置打包类型为pom

<packaging>pom</packaging>

注意事项:

  1. 建议父工程打包方式设置为pom

4.2 在父工程的pom文件中配置依赖关系(子工程将沿用父工程中的依赖关系)


<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.2.10.RELEASE</version>
    </dependency>
    ……
</dependencies>

4.3 配置子工程中可选的依赖关系

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>
        ……
    </dependencies>
</dependencyManagement>

4.3 在子工程中配置当前工程所继承的父工程

<!--定义该工程的父工程-->
<parent>
    <groupId>com.itheima</groupId>
    <artifactId>maven_parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--填写父工程的pom文件,根据实际情况填写-->
    <relativePath>../maven_parent/pom.xml</relativePath>
</parent>

4.5 在子工程中配置使用父工程中可选依赖的坐标

<dependencies>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
    </dependency>
</dependencies>

注意事项:

  1. 子工程中使用父工程中的可选依赖时,仅需要提供群组id和项目id,无需提供版本,版本由父工程统一提供,避免版本冲突
  2. 子工程中还可以定义父工程中没有定义的依赖关系

5. 聚合与继承的区别

问题导入


聚合和继承的作用?


作用


聚合用于快速构建项目


继承用于快速配置


相同点:


聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中


聚合与继承均属于设计型模块,并无实际的模块内容


不同点:


聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些


继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己


相关文章
|
6月前
|
Java Maven Spring
Maven高级-继承、实施步骤及聚合与继承的区别
Maven高级-继承、实施步骤及聚合与继承的区别
73 0
|
3月前
|
XML Java Maven
"Maven项目模块化大揭秘!掌握Model间最佳继承设计,让你的代码优雅如诗,项目维护不再愁!"
【8月更文挑战第11天】Maven是Java项目中常用的构建工具,其模块化特性对大型项目的管理至关重要。本文介绍Maven中的继承与聚合机制,指导如何通过继承消除重复配置,以及如何通过聚合统一构建多个模块。遵循单一职责原则,文章建议按功能划分模块,并提供了父POM与子POM的配置示例。此外,还讨论了适度模块化、依赖管理的原则,帮助提升项目的可维护性和扩展性。
54 4
|
6月前
|
Java 项目管理 Maven
【揭秘】Maven聚合与继承:如何轻松实现项目依赖管理?
Maven的聚合和继承是Java开发中重要的概念。聚合允许将多个项目组合成一个构建单元,简化多模块项目的构建过程,提高构建效率。继承则让子项目重用父项目的配置和属性,避免了重复定义,增强了项目的一致性和可维护性。通过聚合和继承,Maven为多模块项目的构建和管理提供了高效且灵活的支持,减少了配置冗余,提升了开发效率。
132 0
【揭秘】Maven聚合与继承:如何轻松实现项目依赖管理?
|
6月前
|
Java Maven 开发者
Maven高级-聚合与继承 私服(图文并茂)
Maven高级-聚合与继承 私服(图文并茂)
70 0
|
6月前
|
Java Maven
Maven【4】(继承)(命令行操作)
Maven【4】(继承)(命令行操作)
45 1
|
6月前
|
Java Maven
maven子模块无法继承父模块的jar包解决方案
maven子模块无法继承父模块的jar包解决方案
|
6月前
|
Java Maven
maven的聚合和继承简析
maven的聚合和继承简析
94 0
|
11月前
|
Java Maven Spring
Maven - 父工程的使用与聚合
Maven - 父工程的使用与聚合
170 2
|
6月前
|
Java Maven
Maven高级-聚合及实施步骤
Maven高级-聚合及实施步骤
69 0
|
6月前
|
前端开发 Java Maven
Maven 插件统一修改聚合工程项目版本号
Maven 插件统一修改聚合工程项目版本号