美文网首页
07|第七课:Maven继承、聚合的实现

07|第七课:Maven继承、聚合的实现

作者: 木头amo | 来源:发表于2019-01-28 18:55 被阅读12次

一、历史回顾

(一)、依赖性传递

A.jar ---> B.jar ---> C.jar

要使 A.jar ---> C.jar:当且仅当B.jar依赖于C.jar的范围是compile。

这里总是需要盯着B这里的范围总是compile,但是这里不想在盯着,不管<scope>是什么都A.jar都可以依赖到C.jar,这就需要继承了。

二、Maven继承、聚合

(一)、Maven继承

1、继承:A ---> B,则A可以使用B的所有依赖

继承关系

2、继承实现步骤

a、父工程打包方式需要是:pom

b、父工程的依赖需要写在<dependencyManagement>中,如下面代码所示:

a和b的代码实现

c、子工程的pom.xml配置

(a)、添加<parent>标签

(b)、在<parent>标签中,加入父工程坐标(GAV)。如果子工程GAV这部分内容有与父工程有重复的地方,子工程可以省略(因为可以从父工程继承而来)。

代码实现

(c)、在<parent>的<relativePath>标签中,当前工程的pom.xml到父工程的pom.xml相对路径。

代码实现

(d)、在子类中需要声明:使用那些父类的依赖(声明:只需要GA)

代码实现

3、案例

例:Son项目继承Parent项目的junit依赖

Parent项目:

pom.xml的配置信息:

代码实现

Son项目:

pom.xml的配置信息:

代码实现

(二)、Maven聚合

前面的课程中讲的Demo2依赖Demo1的内容复习一遍,这里是Maven2依赖Maven1。

1、一个项目依赖另一个项目。如下图所示:

2、总结

a、Maven项目能够识别的:自身包含、本地仓库中的

b、Maven2依赖于Maven1,则在执行时:必须先将Maven1加入到本地仓库(install),之后才能执行Maven2。

c、如果Maven2依赖很多Maven1这种情况的项目,那install就很多了。以上前置工程的install操作,可以交由 “聚合”一步搞定

3、案例

例:Maven2依赖Maven1,具体实现(这里就不详细了)

4、聚合的使用

a、建立总工程:聚合的配置只能配置在(打包方式为pom)的maven工程中

b、在一个总工程中配置聚合:modules

这里的总工程的例子

注意:clean命令是删除target目录,并不是清理 install 存放入的本地仓库。如果想清理本地仓库,通过GAV到本地仓库直接手工删除文件夹即可

总结:

a、配置完聚合之后,以后只要操作总工程,则会自动操作该聚合中配置过的工程。

b、配置聚合之后,不用管聚合的顺序。

相关文章

  • 07|第七课:Maven继承、聚合的实现

    一、历史回顾 (一)、依赖性传递 A.jar ---> B.jar---> C.jar 要使A.jar ---> ...

  • Maven学习(四) Maven 聚合 继承 单继承

    Maven学习(四) Maven 聚合 继承 单继承 聚合 Maven聚合:一个Maven项目,用来管理它的mav...

  • 2022-06-09 Maven基础知识(6)- Maven 依

    Maven 依赖传递、POM 继承、Maven 聚合 查看内容请点击下面的链接: https://www.cnbl...

  • maven 继承和聚合

    目录 聚合1.1 为啥需要分模块开发?1.2 为啥需要聚合?1.3 如何使用聚合?1.4 实际方案(方案一...

  • Maven 聚合和继承

    Maven 聚合 该pom文件作为其他pom的容器运行,在pom文件的modules标签中引入我们想要聚合的各个模...

  • Maven聚合与继承

    一、聚合 为了能够使用一条命令就能构建 account-email和 account-persist两个模块,我们...

  • Maven聚合与继承

    一、聚合为了能够使用一条命令就能构建 account-email和 account-persist两个模块,我们需...

  • C++ 封装 继承 多态

    一、封装:将具体的事情封装成抽象的类 二、继承:实现泛化聚合功能 1、泛化 :实现继承,可视继承 2、聚合:接口继...

  • (X)依赖管理

    通过Maven聚合和继承章节中POM可继承的元素我们看到有dependencies,说明依赖是会被继承的。Mave...

  • maven的聚合和继承

    maven的聚合 有三个项目,我们分了三个模块编译:user-core user-log user-service...

网友评论

      本文标题:07|第七课:Maven继承、聚合的实现

      本文链接:https://www.haomeiwen.com/subject/ugcjdqtx.html