父子模块中的Maven pom继承和覆盖

时间:2019-04-05 07:40:34

标签: java maven maven-3

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

让我们以一个例子来了解:

例如,每个依赖项均由maven坐标唯一标识。在子pom中,如果某个依赖项的主坐标与父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并进行检查?

0 个答案:

没有答案