使用activeByDefault时,只执行了一个Maven配置文件

时间:2015-09-17 09:50:12

标签: maven pom.xml maven-profiles

我在pom.xml中定义了两个配置文件:

<profiles>
    <profile>
        <id>nobrand</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <brand>nobrand</brand>
        </properties>
    </profile>
    <profile>
        <id>mybrand</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <brand>mybrand</brand>
        </properties>
    </profile>
</profiles>

<build>部分只使用每个配置文件设置的属性。

默认情况下,两个配置文件都设置为活动状态。但是,只有最后一个由mvn package执行。为什么?我希望构建执行两次。

1 个答案:

答案 0 :(得分:4)

默认情况下处于活动状态的配置文件会在激活另一个配置文件时自动停用。由于默认情况下两个配置文件都已激活,因此第二个配置文件将变为活动状态并停用第一个配置文件。

引用Maven文档关于activeByDefault属性(强调我的):

  

此配置文件将自动激活所有版本,除非使用上述方法之一激活同一个POM中的其他配置文件。默认情况下处于活动状态的所有配置文件在命令行上激活POM中的配置文件或通过其激活配置时自动停用。