`

maven中的聚合与继承

阅读更多
maven中的聚合和继承是2个不同的概念,虽然经常在一个父模块里同时完成这2个功能

一、聚合

聚合的作用是把子项目的构建过程串到一起:
<modules>
		<module>../project-moduleA</module>
		<module>../project-moduleB</module>
	</modules>

或者
<modules>
		<module>project-moduleA</module>
		<module>project-moduleB</module>
	</modules>

前者是对应平行结构的,后者是对应树形结构的

在平行结构的情况下



pom所在的当前目录是D:\example\project-aggregator,所以需要配置为../project-moduleA,才能找到D:\example\project-moduleA

在树形结构的情况下



pom所在的当前目录是D:\example\project-aggregator,所以可以直接配置为project-moduleA,即可找到D:\example\project-aggregator\project-moduleA

聚合模块清楚地知道将要聚合哪些子模块,但是子模块对于自己被聚合毫不知情

二、继承

与聚合不同,继承的目的是为了在父模块中进行一些公共配置,以简化子模块的POM文件
<parent>
		<groupId>net.kyfxbl.modules.project</groupId>
		<artifactId>project-aggregator</artifactId>
		<version>0.0.1-SNAPSHOT</version>
		<relativePath>../project-aggregator</relativePath>
	</parent>

或者
<parent>
		<groupId>net.kyfxbl.modules.project</groupId>
		<artifactId>project-aggregator</artifactId>
		<version>0.0.1-SNAPSHOT</version>
		<relativePath>../</relativePath>
	</parent>

前者是对应平行结构的,后者是对应树形结构的

在平行结构的情况下



pom所在的当前目录是D:\example\project-moduleA,所以需要配置为../project-aggregator,才能找到D:\example\project-aggregator\pom.xml

在树形结构的情况下



pom所在的当前目录是D:\example\project-aggregator\project-moduleA,所以可以直接配置为../,即可找到D:\example\project-aggregator\pom.xml

聚合模块清楚地知道自己继承自哪个父模块,但是父模块并不知道自己将会被哪些子模块继承

实际应用中,将module和parent放在一个pom里,是一种常见的做法
  • 大小: 25.5 KB
  • 大小: 3.7 KB
分享到:
评论

相关推荐

    maven聚合与继承配置

    **三、继承与聚合的结合** 在实际项目中,聚合和继承往往结合使用。`parent`项目作为一个聚合项目,包含了多个子项目,同时作为父项目,它定义了通用的配置供子项目继承。这种方式有助于保持项目结构清晰,减少代码...

    Maven的聚合与继承DEMO(以及前后端分离)

    在本文中,我们将深入探讨 Maven 的聚合与继承特性,并结合前后端分离的实践,来创建一个高效的开发环境。Maven 是 Java 开发中广泛使用的构建工具,它通过配置管理依赖关系,简化项目的构建、测试和部署过程。让...

    maven依赖+继承+聚合

    最后是"Maven聚合"。聚合(Aggregation)是指在单个Maven项目中管理多个子项目的能力。在`pom.xml`中定义`modules`标签,可以将多个子项目包含进来。这样,当我们在顶层项目上执行命令时,Maven会递归地构建所有子...

    maven继承与聚合代码

    **二、Maven聚合** Maven的聚合功能则用于管理多个相关项目,把它们组合成一个整体。这主要通过`&lt;modules&gt;`标签来实现,它允许在一个POM中列出一系列子模块,使得我们可以一次性构建这些模块。聚合POM并不直接影响...

    Maven聚合与继承实例详解.docx

    Maven聚合(Aggregation)功能则允许我们将多个Maven项目组合成一个单一的构建单元。通过在父POM中使用`&lt;modules&gt;`标签,可以列出所有子模块,Maven在构建时会按顺序编译和打包每个子模块。这在处理大型多模块项目时...

    通过Maven的聚合和继承特性创建多模块项目示例

    Maven,作为Java开发中的构建工具,提供了强大的聚合(Aggregation)和继承(Inheritance)特性,使得多模块项目的管理变得高效且有序。本文将深入探讨如何利用这两个特性来创建一个复杂的多模块项目,并通过提供的...

    maven聚合和继承

    Maven聚合(Aggregation)是用来管理多个相关项目的方式,这些项目可能共享一部分代码或者有共同的构建目标。在POM中,我们可以通过设置`&lt;modules&gt;`标签来指定一个父项目下的子项目。这样,当我们在父项目执行构建...

    maven聚合项目

    在本项目中,我们关注的是"Maven聚合项目",这是一个特殊类型的Maven项目,它可以管理多个相关但独立的子项目。 **一、Maven聚合项目** Maven聚合项目(Aggregator Project)的主要目的是将多个相关的Maven项目...

    maven 依赖,聚合,继承,插件运行应用

    在"Maven 依赖,聚合,继承,插件运行应用"这个主题中,我们将深入探讨这四个核心概念。 1. **依赖管理**:Maven依赖是项目中各个模块之间共享代码的关键机制。当你在POM.xml文件中声明一个依赖,Maven会自动下载并...

    maven聚合工程demo

    在"maven聚合工程demo"中,继承被用来确保所有子项目共享相同的构建设置。 子项目通过在自己的 pom.xml 文件中引用父 pom.xml 文件来实现继承,例如: ```xml ... &lt;groupId&gt;com.example&lt;/groupId&gt; ...

    maven总结笔记-继承和聚合

    maven总结笔记-继承和聚合

    maven聚合实例

    Maven聚合允许我们在一个父项目中管理多个子项目,这个父项目被称为"聚合模块"或"顶级模块",在本例中是`demo-top`。这种结构使得我们可以一次性构建和测试所有子项目,而不是逐个处理。这大大提高了开发效率,并且...

    maven聚合项目模板

    "maven聚合项目模板"是指使用Maven创建的一种特殊结构,用于组织多个相关但独立的子项目,使得这些子项目可以作为一个整体进行构建和管理。这种方式在大型项目或者有多个子模块的项目中非常常见。 1. **模块分组**...

    maven 关于 scope test 和 继承传递的问题

    接下来,我们讨论Maven的依赖继承与传递。在Maven的多模块项目中,一个父`pom.xml`可以定义一些通用的配置,包括依赖。如果一个子模块没有声明某个依赖,但是其父模块已经声明并且设置了作用域,那么这个依赖会**...

    Maven安装配置教程及仓库、POM坐标系、Maven工程、继承与聚合

    ### Maven安装配置教程及仓库、POM坐标系、Maven工程、继承与聚合 #### Maven安装与配置 在开始之前,我们首先需要了解Maven是什么。Maven是Apache的一个项目,是一个项目管理和综合工具,主要用来帮助Java项目...

    Maven的聚合(多模块)和Parent继承

    Maven 中的聚合(多模块)和 Parent 继承是两个独立的概念,但是它们之间存在一定的联系。今天,我们将深入探讨这两个概念,并阐明它们之间的关系。 继承是 Maven 中非常强大的功能之一。通过继承,子 POM 可以从父...

    version-maven-plugin:简单易用的maven继承聚合项目的版本号变更插件

    用于对Maven聚合继承项目的版本号进行便捷变更的工具 在使用RPC框架的微服务架构中,为了让服务消费者实现像调用本地方法一样的透明的通过网络进行RPC,服务提供者一般会提供立面jar用于服务消费者集成并通过动态...

    Maven3实战视频教程(14集)

    Maven3_05_maven的聚合和继承 Maven3_06_复习maven的基本内容 Maven3_07_nexus的介绍和安装 Maven3_08_nexus的配置 Maven3_09_发布项目到nexus中 Maven3_10_生命周期和插件简介 Maven3_11_插件基础 Maven3_12_插件的...

Global site tag (gtag.js) - Google Analytics