`

《maven实战》读书笔记(四)——聚合与继承

阅读更多
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聚合

    描述:“Maven3实战笔记06——聚合的介绍。” 基于给定的信息,我们可以深入探讨Maven中的“聚合”概念及其在项目管理中的应用。 ### Maven聚合:理解与实践 #### 一、聚合的概念 在Maven的世界里,“聚合”...

    读书笔记:Maven 实战读书笔记.zip

    读书笔记:Maven 实战读书笔记

    Maven3实战笔记07继承

    描述:“Maven3实战笔记07——继承的介绍。” Maven作为Java项目管理工具,其强大的功能之一便是支持项目的继承特性,这一特性在构建大型、复杂的多模块项目时显得尤为重要。通过继承机制,子项目可以复用父项目中...

    读书笔记:maven实战学习笔记.zip

    读书笔记:maven实战学习笔记

    maven聚合与继承配置

    本示例将深入探讨"Maven聚合与继承"的概念。 **一、Maven聚合(Aggregation)** Maven聚合允许我们将多个独立的Maven项目组织在一起,形成一个单一的构建单元。在我们的示例中,`parent`项目就是一个聚合项目。它...

    读书笔记:Maven 实践学习按理阅读《Maven实战》笔记。.zip

    读书笔记:Maven 实践学习按理阅读《Maven实战》笔记。

    Maven 实战(中文pdf)

    《Maven实战》是一本专为Java开发人员设计的指南,深入浅出地介绍了Maven这一强大的项目管理和构建工具。Maven是Apache软件基金会开发的一个开源项目,它以XML文件格式定义项目,能够自动化构建、依赖管理和项目信息...

    Maven3实战笔记(整合)

    从给定的文件信息来看,标题与描述都指向了“Maven3实战笔记(整合)”,这表明文档主要聚焦于Maven3的实践应用与整合经验分享。Maven是Apache软件基金会维护的一个开源项目,是一个项目管理和综合工具,主要用于Java...

    maven总结笔记-继承和聚合

    maven总结笔记-继承和聚合

    maven依赖+继承+聚合

    本示例将深入探讨Maven中的“依赖”、“继承”和“聚合”这三个核心概念,帮助开发者更好地理解和应用Maven。 首先,我们来讨论"Maven依赖"。在Java开发中,一个项目往往需要引用其他库或者框架来完成特定功能。...

    Maven3实战笔记(全)

    通过阅读《Maven3实战笔记(全)》,开发者不仅可以掌握Maven的基本操作,还能了解到如何高效地利用Maven解决实际项目中的问题,提升开发效率。书中生动的实例和幽默的讲解方式,使得学习过程更为轻松愉快。对于任何...

    Maven 实战(361)_12804356.pdf

    Maven 实战(361)_12804356.pdf

    Maven3实战笔记08Maven反应堆

    ### Maven3实战笔记08——Maven反应堆:深度解析与实战应用 #### Maven反应堆的概念与作用 在深入探讨Maven反应堆之前,我们首先需要理解Maven项目是如何组织和构建的。Maven是一种自动化构建工具,它通过定义项目...

    maven继承与聚合代码

    本篇文章将深入探讨Maven的两个重要特性:继承(Inheritance)和聚合(Aggregation),并结合提供的资源《一头扎进Maven3》第五讲源码及文档进行详细解释。 **一、Maven继承** Maven的继承机制允许我们在多个项目...

    Maven3实战笔记整合

    根据给定的文件信息,我们可以提取出关于"Maven3实战笔记整合"的知识点。由于文件内容部分出现了大量的乱码和不完整字符序列,无法直接从中提取有用的信息。但是,我们可以根据标题和描述以及通用的Maven知识点,来...

    maven 实战 所有源代码

    ** Maven实战:所有源代码详解 ** Maven是一款强大的项目管理和构建工具,广泛应用于Java开发领域。它通过一套约定优于配置的原则,简化了项目的构建、依赖管理以及文档生成等工作。本篇文章将深入探讨"Maven实战...

    读书笔记:maven资源&amp;《Maven实战》 TOREAD 《Maven实战完整版》.zip

    读书笔记:maven资源&amp;《Maven实战》 TOREAD 《Maven实战完整版》

    Maven 实战.pdf-完整版

    接着,书中的内容逐步深入,详细讲解了Maven的核心概念,例如坐标和依赖管理、仓库管理、生命周期和插件的使用、聚合与继承等,这些都是使用Maven时必须掌握的基础知识。 本书还介绍了Maven在实际开发中的高级应用...

    maven 详细教程 实战 例子 电子书

    ** Maven 详细教程 实战 例子 电子书 ** Maven 是一个强大的项目管理工具,广泛应用于Java开发领域。它简化了构建、依赖管理和项目生命周期的...阅读提供的电子书资源和实战操作,将有助于你进一步掌握 Maven 的精髓。

    Maven3实战笔记.pdf

    标题中提及的“Maven3实战笔记”指向了Maven这款流行的Java项目管理和自动化构建工具的第三个主要版本。Maven自从引入以来,就极大地简化了Java项目的构建过程,提高了项目构建的标准化程度。它使用项目对象模型...

Global site tag (gtag.js) - Google Analytics