Свойство 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.