解决多模块开发中的问题(聚合&继承)


在这里插入图片描述

🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
c语言
数据结构
javaweb

石可破也,而不可夺坚;丹可磨也,而不可夺赤。


一、聚合

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

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

<packaging>pom</packaging>
  • 每个maven工程都有对应的打包方式,默认为jar,web工程打包方式为war

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

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

二、继承

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

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

<packaging>pom</packaging>
  • 建议父工程打包方式设置为pom

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

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

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

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

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

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.14</version>
        <!--填写父工程的pom文件-->
        <!-- lookup parent from repository -->
        <relativePath/> 
    </parent>
  • 子工程中使用父工程中的可选依赖时,仅需要提供群组id和项目Id,无需提供版本,版本由父工程统一提供,避免版本冲突
  • 子工程中还可以定义父工程中没有定义的依赖关系

三、聚合和继承的区别

  • 作用:
      • 聚合用于快速构建项目
      • 继承用于快速配置
  • 相同点:
      • 聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom 文件中
      • 聚合与继承均属于设计型模块,并无实际的模块内容
  • 不同点:
      • 聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些
      • 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

叶落闲庭

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值