Maven配置文件可以根据其定义启用/禁用另一个配置文件吗?

Rob*_*rov 4 maven

给定两个配置文件AB,是否可以在配置文件A定义中指定启用或禁用配置文件B的内容

Tun*_*aki 6

无法从另一个配置文件激活/停用一个配置文件。Maven在构建模型之前需要知道活动配置文件的列表。

根据您的用例,有几种解决方法:

  • 将一个配置文件设置为activeByDefault:当另一个配置文件被激活时,它将自动被停用。
  • 使用自定义属性,以便一个配置文件通过该属性的存在被激活,而另一个配置文件通过该属性的存在被停用。示例配置如下所示:

    <profile>
        <id>profileA</id>
        <activation>
            <property>
                <name>somename</name>
            </property>
        </activation>
    </profile>
    <profile>
        <id>profileB</id>
        <activation>
            <property>
                <name>!somename</name>
            </property>
        </activation>
    </profile> 
    
    Run Code Online (Sandbox Code Playgroud)

    因此,如果您使用调用Maven -DsomenameprofileA将会被激活;否则profileB将被激活。