Повторное использование свойств maven в подмодуле без общего родителя - PullRequest
1 голос
/ 21 января 2020

В многомодульном проекте maven есть подмодуль, который должен наследоваться от внешнего родительского проекта. Поэтому он не может наследовать от родительского модуля, как другие подмодули, и те не могут наследовать этого внешнего родителя (поэтому сделать внешний проект родителем всей иерархии не вариант).

Есть ли способ устранить дублирование свойств между таким модулем и остальной частью иерархии?

parent пом. xml

    <properties>
        <foo>bar</foo>
    </properties>

    <modules>
        <module>child</module>
        <module>stepchild</module>
    </modules>

child пом. xml

    <parent>
        <groupId>my</groupId>
        <artifactId>parent</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <description>foo can be used: ${foo}</description>

stepchild пом. xml

    <parent>
        <groupId>external</groupId>
        <artifactId>parent</artifactId>
        <version>35</version>
        <relativePath/>
    </parent>
    <description>foo does not get substituted: ${foo}</description>

1 Ответ

0 голосов
/ 21 января 2020

Помимо всех проблем, обнаруженных другими пользователями в комментариях выше, вы можете установить свойства, используя повторно используемый файл 'my.properties', содержащий foo = bar

и добавляя в maven:

<build>    
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>properties-maven-plugin</artifactId>
        <version>1.0-alpha-1</version>
        <executions>
          <execution>
            <phase>initialize</phase>
            <goals>
              <goal>read-project-properties</goal>
            </goals>
            <configuration>
              <files>
                <file>${basedir}/../project-parent/my.properties</file>
              </files>
            </configuration>
          </execution>
        </executions>
      </plugin>
   </plugins>
...