继承的作用:1.简化配置 2.减少版本冲突

一、简化配置的实现

步骤一,在父项目中写一些公共需要的依赖。

如下图,父项目正常导入一些公共需要的坐标

dependencyManagement 子模块不能继承父模块里面parent的版本 maven子模块版本继承_maven

步骤二 配置子项目继承自父项目。

这一步应该才是需要记得地方。

<!--  配置当前工程继承自00_parent-->
  <parent>
    <groupId>com.itheima</groupId>
    <artifactId>00_parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../00_parent/pom.xml</relativePath>
  </parent>

dependencyManagement 子模块不能继承父模块里面parent的版本 maven子模块版本继承_maven_02


这样就很好做到了版本控制。

实现效果:

dependencyManagement 子模块不能继承父模块里面parent的版本 maven子模块版本继承_intellij-idea_03

二、配置子工程中可选择的依赖关系

在之前的配置中,父工程是按常规我们写坐标的方式直接写坐标,这样写的坐标只要有小项目去继承,那这个小项目就会继承到这个依赖,那现在有一些小模块是不需要这么多依赖的,比如我pojo模块我要那么多依赖干嘛,那现在就可以配置一些只有小模块需要的,要小模块主动写的,才会拿过去。当然,这里虽然是要小模块写,但是不能写版本,因此这个版本控制还是归我父模块的。
下面是实现方法:

步骤一:配置子工程中可选择的依赖关系

这里其实就是把<dependencies>,这个标签外面再裹一层标签,告诉外面,我这个是你选择才写。

<!--    配置子项目中可选的依赖-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

dependencyManagement 子模块不能继承父模块里面parent的版本 maven子模块版本继承_maven_04

步骤二,子模块进行选择

进行选择的话直接正常拉取坐标就可以了,需要注意的是,不需要写版本,当然如果使用快捷键的话,idea也不会帮你写版本。

dependencyManagement 子模块不能继承父模块里面parent的版本 maven子模块版本继承_依赖关系_05

总结

其实这里就两块内容,一个是大家都可以用的坐标,一个是有些用不着的坐标。如果需要使用父的坐标,那子类得描述清楚父模块的位置,如果是定义可选择的坐标,那父模块必须的加一个标签。