1、聚合的写法
<project>
<groupId />
<artifactId />
<version />
<packaging>pom</packaging>
<modules>
<module>abc</module>
<module>def</module>
</modules>
</project>
以上的配置和一般的POM有2个区别,一个是packaging要声明为pom,第二个是多了<modules>的配置
这里的abc和def都是子目录的目录名。也就是说,abc和def都是这个聚合项目的子目录,如果要平级的话,这里需要改成../abc和../def
2、继承
以下列表中的pom元素是可以被继承的:
<groupId>
<version>
<description>
<distributionManagement>
<properties>
<dependencies>
<dependencyManagement>
<repositories>
<build>
不过一般不会直接继承<dependencies>,因为未来增加的子项目,是否一定就需要依赖parent里声明的依赖,是很难说的。所以一般在parent pom里,只会配置<dependencyManagement>,以限定依赖的版本号。实际的依赖还是在具体子项目里声明的,但是对版本号进行了控制
3、聚合与继承的关系
聚合主要是为了多个maven工程协同构建项目,而继承主要是为了消除重复配置
对于聚合模块来说,它知道有哪些被聚合的模块,被聚合的模块并不知道聚合模块的存在
对于继承关系的parent pom来说,它并不知道哪些子模块继承自它,而子模块则必须知道父模块是什么
在实际项目中,往往会把聚合POM和父POM合一,这样也是有道理的,主要是为了方便起见。至于目录结构,可以是子目录,也可以是平行关系
4、裁剪Reactor
当构建一组存在聚合和继承关系的maven项目时,就存在一个Reactor的关系,也就是构建的顺序
默认情况下,构建顺序会形成一个有向非循环图
但是可以通过一些参数,来对构建顺序进行裁剪
mvn -pl aa,bb
仅构建aa和bb模块
mvn -pl aa -am
构建aa,及aa的依赖模块
mvn -pl aa -amd
构建aa,及依赖aa的模块
mvn -pl aa -amd bb
首先根据aa,及依赖aa的模块,计算出构建顺序之后,从bb模块开始构建(bb模块之前的模块不会被构建)
分享到:
相关推荐
描述:“Maven3实战笔记06——聚合的介绍。” 基于给定的信息,我们可以深入探讨Maven中的“聚合”概念及其在项目管理中的应用。 ### Maven聚合:理解与实践 #### 一、聚合的概念 在Maven的世界里,“聚合”...
读书笔记:Maven 实战读书笔记
描述:“Maven3实战笔记07——继承的介绍。” Maven作为Java项目管理工具,其强大的功能之一便是支持项目的继承特性,这一特性在构建大型、复杂的多模块项目时显得尤为重要。通过继承机制,子项目可以复用父项目中...
读书笔记:maven实战学习笔记
本示例将深入探讨"Maven聚合与继承"的概念。 **一、Maven聚合(Aggregation)** Maven聚合允许我们将多个独立的Maven项目组织在一起,形成一个单一的构建单元。在我们的示例中,`parent`项目就是一个聚合项目。它...
读书笔记:Maven 实践学习按理阅读《Maven实战》笔记。
《Maven实战》是一本专为Java开发人员设计的指南,深入浅出地介绍了Maven这一强大的项目管理和构建工具。Maven是Apache软件基金会开发的一个开源项目,它以XML文件格式定义项目,能够自动化构建、依赖管理和项目信息...
从给定的文件信息来看,标题与描述都指向了“Maven3实战笔记(整合)”,这表明文档主要聚焦于Maven3的实践应用与整合经验分享。Maven是Apache软件基金会维护的一个开源项目,是一个项目管理和综合工具,主要用于Java...
maven总结笔记-继承和聚合
本示例将深入探讨Maven中的“依赖”、“继承”和“聚合”这三个核心概念,帮助开发者更好地理解和应用Maven。 首先,我们来讨论"Maven依赖"。在Java开发中,一个项目往往需要引用其他库或者框架来完成特定功能。...
通过阅读《Maven3实战笔记(全)》,开发者不仅可以掌握Maven的基本操作,还能了解到如何高效地利用Maven解决实际项目中的问题,提升开发效率。书中生动的实例和幽默的讲解方式,使得学习过程更为轻松愉快。对于任何...
Maven 实战(361)_12804356.pdf
### Maven3实战笔记08——Maven反应堆:深度解析与实战应用 #### Maven反应堆的概念与作用 在深入探讨Maven反应堆之前,我们首先需要理解Maven项目是如何组织和构建的。Maven是一种自动化构建工具,它通过定义项目...
本篇文章将深入探讨Maven的两个重要特性:继承(Inheritance)和聚合(Aggregation),并结合提供的资源《一头扎进Maven3》第五讲源码及文档进行详细解释。 **一、Maven继承** Maven的继承机制允许我们在多个项目...
根据给定的文件信息,我们可以提取出关于"Maven3实战笔记整合"的知识点。由于文件内容部分出现了大量的乱码和不完整字符序列,无法直接从中提取有用的信息。但是,我们可以根据标题和描述以及通用的Maven知识点,来...
** Maven实战:所有源代码详解 ** Maven是一款强大的项目管理和构建工具,广泛应用于Java开发领域。它通过一套约定优于配置的原则,简化了项目的构建、依赖管理以及文档生成等工作。本篇文章将深入探讨"Maven实战...
读书笔记:maven资源&《Maven实战》 TOREAD 《Maven实战完整版》
接着,书中的内容逐步深入,详细讲解了Maven的核心概念,例如坐标和依赖管理、仓库管理、生命周期和插件的使用、聚合与继承等,这些都是使用Maven时必须掌握的基础知识。 本书还介绍了Maven在实际开发中的高级应用...
** Maven 详细教程 实战 例子 电子书 ** Maven 是一个强大的项目管理工具,广泛应用于Java开发领域。它简化了构建、依赖管理和项目生命周期的...阅读提供的电子书资源和实战操作,将有助于你进一步掌握 Maven 的精髓。
标题中提及的“Maven3实战笔记”指向了Maven这款流行的Java项目管理和自动化构建工具的第三个主要版本。Maven自从引入以来,就极大地简化了Java项目的构建过程,提高了项目构建的标准化程度。它使用项目对象模型...