maven中的继承和聚合的关系

maven中的继承和聚合的关系:
两者的目的是不一样的,聚合的目的是能够快速的构建项目,继承的目的是减少重复配置。
聚合:
定义一个聚合模块,然后在pom文件中添加<module></module>标签,其中的内容是模块相对于当前模块的路径。那么在构建聚合模块的时候,在<module>中定义的模块也会跟着构建,不用逐个构建,因此加快了构建速度。
继承:
除了定义一个父模块,在父模块的pom文件中添加<module>标签,还要在子模块pom文件中添加<parent>标签,指向父模块。指向之后,那么在父模块中定义的插件和依赖都可以被子模块继承,就不用再子模块pom文件中重复配置了(减少了重复配置)。
注:无论是聚合还是继承,父模块的pom文件中的<packageing>的内容都是pom,(这是乌龟的屁股,规定)。如果不写的话,默认的都是jar。

还有一个问题就是,在父模块定义了很多依赖,但是某一个模块并没有全部用到,那么子模块还是会全部继承过来。比较浪费。
所以可以使用依赖管理标签<dependencyManagement>
在父模块的pom文件中的<dependencyManagement></dependencyManagement>定义了所有需要依赖的jar包,但是这样子模块并不会引入这些jar包。子模块中需要哪些jar包就在自身pom文件的<dependency>标签中引入就可以了,因为父模块的pom文件中已经定义过了,子模块的pom文件只需定义出<groupId>和<artifactId>就可以了。

时间: 2024-10-15 12:30:40

maven中的继承和聚合的关系的相关文章

Maven中的继承和聚合

一. 继承和聚合 1. 什么是继承? maven为了消除重复,把很多相同的配置提取出来, 放入一个父项目的pom.xml中 例如:grouptId,version等 2. 什么是聚合? 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 <modules> <module>-</module> </modules> 3. 继承与聚合的关系 继承主要为了消除重复 聚合主要为了快速构建项目 二. 继承聚合配置 1. 聚合配置代码: <mod

maven in action(五)maven继承和聚合

问题的提出: 当一个项目依赖多个其他项目或者模块的时候,可以A模块引用了junit jar,B模块也引用了junit jar,而这个项目依赖于A.B模块,这样就没有必要重复添加junit jar坐标依赖.这时候,我们可以单独的一个项目来管理jar的坐标依赖,也就是下面要说的依赖的继承. 继承 面向对象思想中有继承,子类继承父类不是私有的方法和属性. 在maven中的继承,我们可以抽取出所有公共的jar坐标,然后建立一个parent的项目,该项目中仅包含有一个pom.xml文件,并且parent项

Maven学习笔记(七):聚合与继承

软件设计人员往往会采用各种方式对软件划分模块,以得到更清晰的设计及更高的重用性.当把Maven应用到实际项目中的时候,也需要将项目分成不同模块.Maven的聚合特性能够把项目的各个模块聚合在一起构建,而Maven的继承特性则能帮助抽取各模块相同的依赖和插件等配置,在简化POM的同时,还能促进各个模块配置的一致性. <maven实战>一书实现了两个模块account-email和account-persist用以实现一个用户注册的项目. 在本文中,也使用这个例子来讲述聚合与继承. 聚合:  由于

《Maven实战》笔记-5-pom聚合和继承

一.聚合 假设有两个模块:account-email和account-persist: 能够使用一条命令就能构建上述两个模块,需要创建一个额外的模块:account-aggregator: 通过account-aggregator构建整个项目的所有模块,而该模块本身也是Maven项目,有自己的Pom文件: 注意聚合模块account-aggregator打包方式packaging的值必须为pom,如下: 注意,聚合模块与其他模块的目录结构一般是父子关系,如上述pom所示.不过也不是必须的,这是要

maven项目继承与聚合

说到聚合与继承我们都很熟悉,maven同样也具备这样的设计原则,下面我们来看一下Maven的pom如何进行聚合与继承的配置实现. 一.为什么要聚合? 随着技术的飞速发展和各类用户对软件的要求越来越高,软件本身也变得越来越复杂,然后软件设计人员开始采用各种方式进行开发,于是就有了我们的分层架构.分模块开发,来提高代码的清晰和重用.针对于这一特性,maven也给予了相应的配置. 情景分析一: 我们在开发过程中,创建了2个以上的模块,每个模块都是一个独立的maven project,在开始的时候我们可

maven之详解继承与聚合

说到聚合与继承我们都很熟悉,maven同样也具备这样的设计原则,下面我们来看一下Maven的pom如何进行聚合与继承的配置实现. 一.为什么要聚合? 随着技术的飞速发展和各类用户对软件的要求越来越高,软件本身也变得越来越复杂,然后软件设计人员开始采用各种方式进行开发,于是就有了我们的分层架构.分模块开发,来提高代码的清晰和重用.针对于这一特性,maven也给予了相应的配置. 情景分析一: 我们在开发过程中,创建了2个以上的模块,每个模块都是一个独立的maven project,在开始的时候我们可

Eclipse下Maven工程多模块继承和聚合的创建

使用Maven对项目进行管理的时候,多模块的继承和聚合是必不可少的,本文简要说明一下在eclipse IDE下创建多模块工程. 1.Maven多模块的聚合 一个Maven工程下创建多个模块,然后用一个专门管理模块来将实际应用到的模块组织起来. 2.Maven多模块的继承 子模块通过继承父模块,来获的父模块中的pom.xml配置信息. 3.Maven多模块的继承+聚合 上图是将1和2组合起来,可以将父模块作为聚合模块和父模块,这样父模块就可以聚合(组织)其子模块,子模块可以继承父模块. 4.聚合和

Maven的使用《二》之依赖、继承、聚合

问题?Maven的使用<二>之依赖.继承.聚合 前面已经讲到了环境的搭建(环境搭建链接),这里就不重复了.下面的主要是对依赖.继承.聚合详细说明. 这里用的编译软件是eclipse,要装maven的插件(下载地址和安装方法:点击下载链接). 然后装完后,这个时候插件已经在Preference里面了,但是插件还不能用,需要我们做一些设置. 一般来说,做到这里就可以用了.但是我在用的过程中会出现这样的一种错误(点击查看链接),经过查询资料,已经得到了很好的解决办法.做下面设置(把jir改成jdk格

【maven】依赖、继承、聚合

依赖: <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.0</version> <scope>test</scope> </dependency>1.依赖的范围(依赖的有效性) compile(默认值) test 比如:Junit provided 比如:servlet-api