1

在 maven 多模块项目中,有一个子模块需要从外部父项目继承。因此它不能像其他子模块一样从父模块继承,并且那些不能继承该外部父模块(因此使外部项目成为整个层次结构的父模块不是一种选择)。

有没有办法消除此类模块与层次结构的其余部分之间的属性重复?

parentpom.xml

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

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

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

stepchildpom.xml

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

1 回答 1

0

除了其他用户在上述评论中发现的所有问题外,您还可以使用包含 foo=bar 的可重用文件“my.properties”设置属性

并添加到 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>
于 2020-01-21T14:36:34.910 回答