maven聚合

聚合的目的是为了快速构建项目,当我们有几个maven模块,想要一次性构建,而不是到每个模块下面去执行maven命令,这时候就需要使用maven聚合(或者称为多模块)。

使用聚合的时候,我们需要新建一个maven项目,由它来控制构建其他的项目,其pom.xml配置与其他普通maven项目的区别主要在以下两个地方:

  1. 打包类型(packaging)必须为pom

  2. 需要在其中添加modules标签,在其中使用module标签包括需要同时构建的maven模块的名称路径,路径为相对于此pom.xml文件的路径(如果与pom.xml文件同级则直接写项目名,如果在上一级则写../项目名)。

这样当我们在此项目下执行构建的时候,就会同时构建其中配置的项目。

下面举一个配置文件的例子:

<project ......>
<groupId>XXX.XXX</groupId>
<artifactId>XXX</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<modules>
<module>XX1</module>
<module>XX2</module>
</modules>
</project>

maven继承

继承的目的是为了消除重复配置,在项目中可以通过继承父模块的一些配置来简化配置文件,避免配置的重复。

父模块

1. 使用继承的时候,父模块的配置文件(pom.xml)中打包类型必须同聚合一样,为pom。

2. 依赖管理:为了避免子模块继承没有不必要的依赖,所以在父模块中并不引入实际的依赖,而是使用dependencyManagement元素,在其中声明的的dependencies不会在其本身(父模块)中引入依赖,也不会给它的子模块引入依赖。如果在子模块需要使用其中配置的依赖,则可以在子模块中声明,但是不需要声明版本号和依赖范围(已在父模块中声明),这样可以统一不同模块中的依赖版本。

3. 插件管理:同依赖管理,Maven提供了类似的pluginManagement元素来帮助管理插件,使用方式也基本相同。

子模块

子模块如果要继承父模块,则需在其pom.xml中需添加如下配置,同时其groupId和version会省略,直接继承父模块的配置。

<parent>
<groupId>XXX.XXX</groupId>
<artifactId>XX</artifactId>
<version>1.0</version>
<relativePath>XX/XX/pom.xml</relativePath>
</parent>

其中relativePath为父项目的pom.xml路径(如果没有配置此项,则默认为../pom.xml,即上级目录下的pom.xml),构建时会先根据relativePath查找,如果找不到,则会再从本地仓库查找。

注:maven聚合和继承可以同时使用。

maven聚合与继承笔记的更多相关文章

  1. 06 Maven 聚合和继承

    Maven 聚合和继承 1. 聚合 2. 继承 <parent> <groupId>org.apache.karaf.demos</groupId> <art ...

  2. 笔记:Maven 聚合和继承

    聚合模块 我们希望一次构建两个或更多项目,而不是到每个模块的目录下分别执行mvn命令,Maven 聚合这一特性就是为该需求服务的, 为了使用聚合,我们必须创建一个聚合模块,通过该模块与其他项目聚合,并 ...

  3. (十四)Maven聚合与继承

    1.Maven聚合 我们在平时的开发中,项目往往会被划分为好几个模块,比如common公共模块.system系统模块.log日志模块.reports统计模块.monitor监控模块等等.这时我们肯定会 ...

  4. Maven——聚合与继承

    原文:http://www.cnblogs.com/xdp-gacl/p/4058008.html 一.聚合 如果我们想一次构建多个项目模块,那我们就需要对多个项目模块进行聚合 1.1.聚合配置代码 ...

  5. Maven聚合和继承的详细解释

    说到聚合与继承我们都非常熟悉,maven相同也具备这种设计原则.以下我们来看一下Maven的pom怎样进行聚合与继承的配置实现. 一.为什么要聚合? 随着技术的飞速发展和各类用户对软件的要求越来越高. ...

  6. maven课程 项目管理利器-maven 3-10 maven聚合和继承 4星

    本节主要讲了以下内容: 1 maven聚合 2 maven继承 1 maven聚合 <!-- 聚合特有标签 --> <groupId>com.hongxing</grou ...

  7. maven学习(十二)——maven聚合与继承实战

    聚合与继承实战 创建四个Maven项目,如下图所示:

  8. Maven 教程(14)— Maven聚合与继承

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79553011 1.Maven聚合 我们在平时的开发中,项目往往会被划分为好几个模 ...

  9. Java开发学习(三十)----Maven聚合和继承解析

    一.聚合 分模块开发后,需要将这四个项目都安装到本地仓库,目前我们只能通过项目Maven面板的install来安装,并且需要安装四个,如果我们的项目足够多,那么一个个安装起来还是比较麻烦的 如果四个项 ...

随机推荐

  1. nes 红白机模拟器 第7篇 编译使用方法

    模拟器,基于 InfoNES ,作者添加修改以下功能: 1, joypad 真实手柄驱动程序(字符型设备驱动) 2,原始图像只有256*240 ,添加 图像放大算法,这里实现了2种,a, 最近邻插值 ...

  2. Django中ORM中的get与filter区别

    本文出自 “orangleliu笔记本” 博客,出处http://blog.csdn.net/orangleliu/article/details/38597593 Django的orm中get和fi ...

  3. 树链剖分与倍增求LCA

    树链剖分与倍增求\(LCA\) 首先我要吐槽机房的辣基供电情况,我之前写了一上午,马上就要完成的时候突然停电,然后\(GG\)成了送链剖分 其次,我没歧视\(tarjan LCA\) 1.倍增求\(L ...

  4. Java的反射基础技术

    今天本人给大家讲解一下Java的反射基础技术,如有不对的或者讲的不好的可以多多提出,我会进行相应的更改,先提前感谢提出意见的各位了!!! 什么是反射? 反射它是根据字节码文件可以反射出类的信息.字段. ...

  5. asp.net里获取或设置textarea/asp:Textbox/dropdownlist/CheckBox 的值

    1.   textarea .asp:label 和 tasp:extbox 的text文本值: <textarea id="txt_remark" runat=" ...

  6. koa2框架介绍

    koa2框架介绍 1.koa2介绍:是当前最流行的node.js的框架,koa2是由express原来的人打造的.他的体积很小,但是扩展性很强. 2.koa2优点和缺点: 2.1.优点: .抛弃了ca ...

  7. Redis 【常识与进阶】

    Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久 ...

  8. 关于MySQL 建表的一些建议

    由于在生产环境下,我们对MySQL数据库的操作通常是通过命令行进行操作,因此,建议建表的时候也手写MySQL语句(不建议用图形界面建表). 1.添加注释的格式 在编写MySQL语句时,我们通常会被要求 ...

  9. Elasticsearch系列---使用中文分词器

    前言 前面的案例使用standard.english分词器,是英文原生的分词器,对中文分词支持不太好.中文作为全球最优美.最复杂的语言,目前中文分词器较多,ik-analyzer.结巴中文分词.THU ...

  10. CBV和APIView源码分析

    CBV源码分析 查看源码的方式,先查看自身,没有去找父类,父类没有就去找父父类... 自己定义的类 class Author(View): def get(self,request): back_di ...