Maven高级-继承、实施步骤及聚合与继承的区别

简介: Maven高级-继承、实施步骤及聚合与继承的区别

一、继承

我们已经完成了使用聚合工程去管理项目,聚合工程进行某一个构建操作,其他被其管理的项目也会 执行相同的构建操作。那么接下来,我们再来分析下,多模块开发存在的另外一个问题,重复配置的问题,我们先来看张图:

2311888be94e4117b6098d4017a36e4c.png


■ spring-webmvc、spring-jdbc在三个项目模块中都有出现,这样就出现了重复的内容

■ spring-test只在ssm_crm和ssm_goods中出现,而在ssm_order中没有,这里是部分重复的内容

■ 我们使用的spring版本目前是5.2.10.RELEASE ,假如后期要想升级spring版本,所有跟Spring相关jar包都得被修改,涉及到的项目越多,维护成本越高


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


作用:

简化配置

减少版本冲突

二、继承关系实施步骤

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

<packageing>pom<packageing>

注意事项:建议父工程打包方式设置为pom


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

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

3、在配置子工程中可选的依赖关系

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

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

<!--配置该工程的父工程-->
  <parent>
    <groupId>com.itheima</groupId>
    <artifactId>maven_01_parent</artifactId>
    <version>1.0-RELEASE</version>
    <!--填写父工程的pom文件-->
    <relativePath>../maven_01_parent/pom.xml</relativePath>
</parent>

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

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

注意事项:


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

三、聚合与继承的区别

作用:

聚合用于快速构建项目

继承用于快速配置


相同点:

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

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


不同点:

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

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

目录
相关文章
|
4月前
|
Java Maven Spring
Maven高级-属性配置使用、资源文件引用属性及版本管理
Maven高级-属性配置使用、资源文件引用属性及版本管理
123 0
|
4月前
|
Java Maven
Maven高级-分模块开发和设计及依赖管理
Maven高级-分模块开发和设计及依赖管理
46 0
|
4月前
|
存储 Oracle Java
Maven高级-私服简介与安装及私服仓库分类
Maven高级-私服简介与安装及私服仓库分类
62 0
|
1月前
|
Java Maven
Maven【4】(继承)(命令行操作)
Maven【4】(继承)(命令行操作)
16 1
|
2月前
|
Java Maven
maven的聚合和继承简析
maven的聚合和继承简析
70 0
|
2月前
|
Java Linux Apache
Maven的Binary与Source区别
Maven的Binary与Source区别
49 1
|
4月前
|
Java Maven
maven子模块无法继承父模块的jar包解决方案
maven子模块无法继承父模块的jar包解决方案
|
4月前
|
Java Maven 数据安全/隐私保护
Maven高级-本地仓库访问私服配置及私服资源上传与下载
Maven高级-本地仓库访问私服配置及私服资源上传与下载
288 0
|
4月前
|
Java 测试技术 Maven
Maven高级-多环境配置与应用及跳过测试方式
Maven高级-多环境配置与应用及跳过测试方式
37 0
|
4月前
|
Java Maven
Maven高级-聚合及实施步骤
Maven高级-聚合及实施步骤
28 0

热门文章

最新文章

推荐镜像

更多