首页 > 解决方案 > Maven pom继承和覆盖父子模块

问题描述

我很好奇如何决定子 pom 中的元素是否会覆盖父 pom 详细信息,或者只是与子 pom 中的父 pom 继承元素一起添加。

让我们举个例子来理解:

例如,每个依赖项都由 Maven 坐标唯一标识。在子 pom 中,如果依赖项的 maven 坐标与父 pom 中的依赖项不同,则不会发生覆盖,并且父依赖项也会添加到子 pom 中。

在这里,我们在 maven xml 中有一个元素的唯一标识标准,它帮助我们确定是否会发生覆盖。

另一个例子:

让我们再举一个<license>标签的例子。使用有效的 pom 做一些实验,我才知道,这<licenses>是继承的。

<licenses>
    <license>
        <name>The Apache Software License, Version 2.0</name>
        <url>http://www.apache.org/licenses/LICENSE-3.0.txt</url>
        <distribution>repo</distribution>
    </license>
</licenses>

但是,如果我更改 , , 中的任何一个,<name>就会发生覆盖。<url><distribution>

当覆盖发生和不发生(父元素附加子元素)时是否有任何明确的规则,而不每次都生成有效的 pom 并检查它?

标签: javamavenmaven-3

解决方案


推荐阅读