Maven: активировать только профиль A, если профиль B не активирован?

У меня есть два профиля профиля Maven-A и профиль-B. "B" следует активировать только в том случае, если "A" не активирован. Поэтому, если бы я назвал

mvn install

выполняется профиль-B (но не профиль-A). Но если бы я назвал

mvn install -Pprofile-A

тогда выполняется только профиль-A (но не профиль-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

Я думаю, что для командной строки вашего примера, как и следовало ожидать, все, что вам нужно, это <activeByDefault>true</activeByDefault> для профиля B.

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

Все профили, которые активны по умолчанию, автоматически деактивируются, когда профиль в POM активируется в командной строке или через конфигурацию активации.