12

假设我有一个父 pom A,配置文件 win32 和 win64 由操作系统激活:

<profile>
    <id>windows32</id>
    <activation>
        <os>
            <family>windows</family>
            <arch>x86</arch>
        </os>
    </activation>
    <properties>
        <envClassifier>win-x32</envClassifier>
    </properties>
</profile>
<profile>
    <id>windows64</id>
    <activation>
        <os>
            <family>windows</family>
            <arch>amd64</arch>
        </os>
    </activation>
    <properties>
        <envClassifier>win-x64</envClassifier>
    </properties>
</profile>

这些配置文件定义了环境。${envClassifier} 等变量表示父模块有一个子模块 B,它想在 win64 上定义一些额外的东西:

<profile>
    <id>windows64</id>
    <properties>
        <jreName>jre6u27.zip</jreName>
    </properties>
</profile>

我可以以某种方式从父级扩展 win64 配置文件,还是我注定要复制并粘贴它以及它的激活部分和所有内容?

4

2 回答 2

6

我刚刚使用mvn help:effective-pom检查了这个案例。

如果您<activation>以与父配置文件相同的方式为子配置文件指定部分,则这两个配置文件的属性将被合并。

于 2012-07-10T07:02:58.943 回答
4

显然它根本不可能。我在这里找到了一个很好的解释 - http://www.dashbay.com/2011/03/maven-profile-inheritance/

于 2012-07-10T12:56:33.577 回答