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

Only one Maven profile executed when using activeByDefault

我在 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执行了。为什么?我预计构建会执行两次。

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

从 Maven 文档中引用 activeByDefault 属性(强调我的):

This profile will automatically be active for all builds unless another profile in the same POM is activated using one of the previously described methods. All profiles that are active by default are automatically deactivated when a profile in the POM is activated on the command line or through its activation config.