我很好奇如何决定子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并进行检查?