美文网首页
Maven工程聚合和继承的意义

Maven工程聚合和继承的意义

作者: 054ab278d5d9 | 来源:发表于2019-03-19 16:59 被阅读0次

  聚合的意义:

  对于一个大型的项目,如果我们直接作为一个工程开发,由于相互之间的依赖我们只能从头到尾由一组人开发,否则就会出现一个类好多人开发,相互更改的混乱局面,这个时候我们就将项目进行了横向和纵向的拆分。

  所谓的横向的拆分就是我们平常说的三层架构,将项目分成了web层,service层、dao层(web层也被叫做表现层,service层也被叫做业务层,dao层也被持久层),可以理解为将一个功能模块的不同调用过程进行了水平方向的拆分。

  所谓的纵向拆分就是将一个项目的多个功能模块进行了,可以理解为为了完成一个系统,深度(纵向)分析需要有哪些功能,然后将这些功能独立出来,进行了(纵向)拆分。

  横向拆分后,每个功能模块进行了单独的开发之后,项目整合的时候就需要有一个能够整合这些项目或者模块的工程,这就是所谓聚合工程的意义。

  建立聚合工程需要注意:

  1.该聚合项目本身也做为一个Maven项目,它必须有自己的POM

  2.它的打包方式必须为: pom

  3.引入了新的元素:modules---module

  4.版本:聚合模块的版本和被聚合模块版本一致

  5.relative path:每个module的值都是一个当前POM的相对目录

  6.目录名称:为了方便的快速定位内容,模块所处的目录应当与其artifactId一致(Maven约定而不是硬性要求),总之,模块所处的目录必须和<module>模块所处的目录</module>相一致。

  7.习惯约定:为了方便构建,通常将聚合模块放在项目目录层的最顶层,其它聚合模块作为子目录存在。这样当我们打开项目的时候,第一个看到的就是聚合模块的POM

8.聚合模块减少的内容:聚合模块的内容仅仅是一个pom.xml文件,它不包含src/main/Java、src/test/java等目录,因为它只是用来帮助其它模块构建的工具,本身并没有实质的内容。

  9.聚合模块和子模块的目录:他们可以是父子类,也可以是平行结构,当然如果使用平行结构,那么聚合模块的POM也需要做出相应的更改。

  10 如果聚合项目的子模块新建完成后进行了删除操作,一定要在聚合项目中pom.xml中的modules选项卡中将这个子模块进行删除

  继承的意义:

  继承除了能够避免重复,还有一个好处就是让项目更加安全

  继承时需要注意;

  1.说到继承肯定是一个父子结构,那么我们在聚合项目中来创建一个parent project

  2.<packaging>: 作为父模块的POM,其打包类型也必须为POM

  3.结构:父模块只是为了帮助我们消除重复,所以它也不需要src/main/java、src/test/java等目录

  4.新的元素:<parent> , 它是被用在子模块中的

  5.<parent>元素的属性:<relativePath>: 表示父模块POM的相对路径,在构建的时候,Maven会先根据relativePath检查父POM,如果找不到,再从本地仓库查找

  6.relativePath的默认值: ../pom.xml

  7.子模块省略groupId和version: 使用了继承的子模块中可以不声明groupId和version, 子模块将隐式的继承父模块的这两个元素

总结:

  对于聚合模块来说,它知道有哪些被聚合的模块,而对于被聚合的模块来说,它们不知道被谁聚合了,也不知道它的存在

  对于继承关系的父POM来说,它不知道自己被哪些子模块继承了,对于子POM来说,它必须知道自己的父POM是谁

  在一些最佳实践中我们会发现:一个POM既是聚合POM,又是父POM,这么做主要是为了方便。

相关文章

  • Maven工程聚合和继承的意义

    聚合的意义: 对于一个大型的项目,如果我们直接作为一个工程开发,由于相互之间的依赖我们只能从头到尾由一组人开发,否...

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

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

  • maven 继承和聚合

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

  • Maven 聚合和继承

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

  • maven的聚合和继承

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

  • Maven的聚合和继承

    在这个技术飞速发展的时代,各类用户对软件的要求越来越高,软件本身也变得越来越复杂。因此,软件设计人员往往会采用各种...

  • (IX)Maven聚合和继承

    概述:当前软件设计人员会对软件划分模块,以得到更清晰的设计及更高的重用性。简单来说,Maven的聚合特性就是将项目...

  • maven聚合和继承(8)

    聚合(模块开发): 一个项目可能用多个模块组成 聚合只需要一次运行就可以构件完成 1.新建父模块 第一个要勾选 p...

  • (X)依赖管理

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

  • Java工程搭建方案 - Maven

    本篇讲讲Maven在实际项目中的应用,包含 Maven继承和聚合 微服务项目划分 Maven仓库配置和顺序 Mav...

网友评论

      本文标题:Maven工程聚合和继承的意义

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