Maven:如果未激活配置文件B,则仅激活配置文件A?

时间:2011-09-08 07:43:27

标签: maven profile activation

我有两个Maven配置文件配置文件-A和配置文件-B。只有在未激活“A”时才应激活“B”。 所以如果我打电话

mvn install

执行profile-B(但不执行profile-A)。 但如果我打电话

mvn install -Pprofile-A

然后只执行profile-A(但不执行profile-B)。

有什么提示我需要编写pom.xml来实现这个目标吗?

我已经尝试了这个,但它不起作用:

<profiles>
  <profile>
    <id>profile-A</id>
    <activation>
      <activeByDefault>false</activeByDefault>
    </activation>
    ...
  </profile>

  <profile>
    <id>profile-B</id>
    <activation>
      <activeByDefault>true</activeByDefault>
      <property>
        <name>!profile-A</name>
      </property>       
      ...
    </activation>
    ...
  </profile>
</profiles>

1 个答案:

答案 0 :(得分:9)

我认为您的示例命令行按预期工作,您只需要为配置文件B <activeByDefault>true</activeByDefault>

http://maven.apache.org/guides/introduction/introduction-to-profiles.html州:

  

当在命令行上激活POM中的配置文件或通过其激活配置时,默认情况下处于活动状态的所有配置文件都将自动停用。