Что представляет собой Родительский тег в Maven pom?

например:

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

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

спасибо.

2 ответов


да, maven считывает Родительский POM из вашего локального репозитория (или прокси, например nexus) и создает "эффективный POM" путем слияния информации от родителя и модуля POM.

см. также введение в POM

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


общие зависимости, свойства, константы и т. д. могут быть определены в Центральном Родительском проекте pom.в XML

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

    <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>