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

Mis*_*rer 5 pom.xml maven 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>
Run Code Online (Sandbox Code Playgroud)

<build>节仅使用每个配置文件设置的属性。

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

Tun*_*aki 5

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

从Maven文档中引用该activeByDefault属性(重点是我的):

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


归档时间:

查看次数:

1147 次

最近记录:

10 年,1 月 前