Свойство Maven Custom Parent из модуля

Я не могу получить доступ из модуля Maven к свойству, определенному в properties раздел родителей. На самом деле, когда я запускаю сборку ниже, warName является по умолчанию.

Это родитель пом

....
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.speed.pms</groupId>
    <artifactId>PMS-Main</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>
        <name>PMS Main Build Project</name>

    <properties>
            <context-root>PMS-CUSTOM</context-root>
        </properties>
     <modules>
        <module>../PMS-WEB</module>
     </modules>
....

И это модуль

...
 <parent>
        <groupId>com.speed.pms</groupId>
        <artifactId>PMS-Main</artifactId>
        <version>1.0.0</version>
      </parent>
    <artifactId>PMS-WEB</artifactId>
    <packaging>war</packaging>
    <name>PMS-WEB Webapp</name>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <web.resource.dir>src/main/webapp</web.resource.dir>
    </properties>
    <build>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <!-- Context root from parent project -->
                    <warName>${context-root}</warName>
                    <webResources>
                        <resource>
                            <directory>${web.resource.dir}</directory>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>
....

Пока я могу использовать свойство ${project.parent.arctifactId}. Я пробую также ${project.parent.properties.context-root}, но безуспешно. Это должно быть просто, но я не могу понять Какая у меня ошибка? Не должны ли свойства наследоваться от родителя в модуле?

2 ответа

Люди из списка пользователей Maven помогают мне найти решение. Я отправляю ответ

в то время как ваш раздел../PMS-WEB в родительском pom ссылается на дочерний элемент в том же каталоге, ваш / не определен, поэтому ожидается, что родительский уровень будет на один уровень выше, а не на том же уровне.

Я изменяю родительский раздел дочернего модуля в

<parent>
    <groupId>com.speed.pms</groupId>
    <artifactId>PMS-Main</artifactId>
    <version>1.0.0</version>
    <relativePath>../PMS-Main/</relativePath>
</parent>

и все работает.

Благодаря милос

Davide

Есть другое решение. Maven 3 на первом этапе ищет родителя pom.xml на один уровень выше каталога. Если они не могут найти этот файл там, попробуйте извлечь pom.xml из хранилища.

Поэтому решение заключается в установке родительского проекта перед запуском maven в child.

Другие вопросы по тегам