Наследование и переопределение Maven pom в родительском дочернем модуле

#java #maven #maven-3

#java #maven #maven-3

Вопрос:

Мне было любопытно, как решить, будет ли наш элемент в дочернем 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 каждый раз и его проверки?

Комментарии:

1. Как <version> можно объединить?

2. @JFMeier Дочерний pom принимает <version> родительский pom, когда он не определен. Итак, я думаю, что это то, что документ говорит о слиянии?

3. Нет, слияние означает, что информация родительского POM не перезаписывается, а объединяется с информацией в дочернем POM. Например: вы можете определить различные зависимости в родительском POM и дополнительные зависимости в дочернем POM, но <dependencies> элемент дочернего POM не перезаписывает один из родительского POM, но элементы обоих берутся, т. Е. объединяются.

4. Thnx отредактировал вопрос

5. Почему вы исключили ссылку на «список слияния» из своего вопроса?