Что представляет собой родительский тег в Maven pom? - PullRequest
43 голосов
/ 06 ноября 2011

например:.

<parent>
    <groupId>mycompany.trade.com</groupId>
    <artifactId>mycompany.trade.</artifactId>
    <version>1.1.1.0-SNAPSHOT</version>
</parent>

Значит ли это, что Maven будет искать родительского пом? Если да, то где, в каком порядке? Может быть в папке до 1 уровня? Или в локальном репозитории или в репо?

Спасибо.

Ответы [ 2 ]

38 голосов
/ 06 ноября 2011

Да, maven читает родительский POM из вашего локального репозитория (или прокси-серверов, таких как nexus ) и создает «эффективный POM», объединяя информацию из POM родительского и модуля.

См. Также Введение в POM

Одна из причин использования родителя заключается в том, что у вас есть центральное место для хранения информации о версиях артефактов, настройках компилятора и т. Д.это должно использоваться во всех модулях.

5 голосов
/ 06 октября 2017

Общие зависимости, свойства, константы и т. Д. Могут быть определены в центральном родительском проекте pom.xml

Главное, что родительский проект не может быть распространен и выглядит более похожим на обычный pom.xml, кроме него упаковка тег

    <groupId>com.company.demo</groupId>
    <artifactId>MavenInheritance</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

Теперь ребенок может унаследовать это, используя

   <parent>
        <groupId>com.company.demo</groupId>
        <artifactId>MavenInheritance</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
...