Maven高级——分模块设计与开发

目录

​编辑

分模块设计与开发

拆分策略

继承与聚合

版本锁定

聚合

作用

实现

Maven中继承与聚合的联系与区别?

联系

区别

私服


分模块设计与开发

将一个大项目拆分成若干个子模块,方便项目的管理维护,扩展,也方便模块间的相互引用,资源共享。

拆分策略

策略一:按照功能模块拆分,比如:公共组件、商品模块、搜索模块、购物车模块、订单模块等。

策略二:按层拆分,比如:公共组件、实体类、控制层、业务层、数据访问层。

策略三:按照功能模块 + 层拆分。

继承与聚合

继承描述的是两个工程间的关系,与java中的继承相似,子工程可以继承父工程中的配置信息,常见于依赖关系的继承。

第一步:创建父工程,设置打包方式为pom,并继承spring-boot-starter-parent

第二步,在子工程中配置继承关系

在子工程中通过parent标签来设置继承关系,来指定当前这个子工程要继承我们所创建的这个父工程,要指定父工程的坐标,通过relativePath来指定父工程的相对路径,那如果你不指定,默认的是从本地仓库或者远程仓库来查找,一旦设置了继承关系,这个组织的名字也会从父工程商继承下来,所以子工程中配置的groupId是可以省略的

第三步,在父工程中配置各个工程的共有依赖

在子工程中,配置了继承关系后,坐标中的groupId是可以省略的,因为会自动继承父工程。

若父子工程都配置了同一个依赖的不同版本,以子工程为准

版本锁定

在maven中,可以在父工程的pom文件中通过<dependencyManagement>来同意管理依赖版本

<dependencies>是直接依赖,在父工程配置了依赖,子工程会直接继承下来

<dependencyManagement>是统一管理依赖版本,不会直接依赖,还需要在子工程中引入所需依赖(无需指定版本)

聚合

将多个模块组织成一个整体,同时进行项目的构建

聚合工程师一个不具有业务功能的"空"工程,有且仅有一个pom文件。tlias-parent既可以作为父工程,也可以作为聚合工程,通常来说父工程和聚合工程都是同一个工程,

作用

聚合的作用就是快速构建项目,在构建项目的过程中,我们是不需要考虑工程间的依赖关系的,我们直接在这个聚合工程上进行操作就可以了,比如我们要安装,我们直接在聚合工程上安装,那么下面的这些个子模块都会全部的进行安装

实现

在Maven中可以通过<modules>设置当前聚合工程所包含的子模块名称

Maven在执行聚合操作时,会自动的根据模块之间的依赖关系来设置构建的顺序,与我们在聚合工程中所配置的这个模块的顺序是没有关系的

如果我们配置好了聚合关系之后,指定了这个聚合工程要聚合哪些模块之后,在右侧的Maven面板中只会展示这个tlias-parent,紧接着将它展开才会看到他里面聚合的其他模块

接下来我们要进行操作的时候就可以直接在聚合工程里进行操作,0比如要进行clean清理,就直接在聚合工程中进行清理

Maven中继承与聚合的联系与区别?

联系

都属于设计型模块,打包方式都位pom,不用写任何的Java代码,常将两种关系制作到同一个pom文件中

区别

继承可以用来简化依赖的配置,我们可以将子工程上公共的这部分依赖统一的抽取到父工程中,所以可以简化依赖的配置,也可以管理依赖的版本,而在配置继承关系的时候,它不是在父工程商配置,而是在子工程中配置他们之间的继承关系,这是继承

对于聚合来说,它的作用是为了快速构建项目,而不用去处理繁琐的模块之间的依赖关系,而对于这一层聚合关系来说,而它是在父工程上来配置当前这个聚合工程要聚合哪些模块的

私服

相关推荐
pianmian12 小时前
类(JavaBean类)和对象
java
我叫小白菜3 小时前
【Java_EE】单例模式、阻塞队列、线程池、定时器
java·开发语言
Albert Edison4 小时前
【最新版】IntelliJ IDEA 2025 创建 SpringBoot 项目
java·spring boot·intellij-idea
超级小忍4 小时前
JVM 中的垃圾回收算法及垃圾回收器详解
java·jvm
weixin_446122464 小时前
JAVA内存区域划分
java·开发语言·redis
勤奋的小王同学~5 小时前
(javaEE初阶)计算机是如何组成的:CPU基本工作流程 CPU介绍 CPU执行指令的流程 寄存器 程序 进程 进程控制块 线程 线程的执行
java·java-ee
TT哇5 小时前
JavaEE==网站开发
java·redis·java-ee
2401_826097625 小时前
JavaEE-Linux环境部署
java·linux·java-ee
缘来是庄5 小时前
设计模式之访问者模式
java·设计模式·访问者模式
Bug退退退1236 小时前
RabbitMQ 高级特性之死信队列
java·分布式·spring·rabbitmq