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 активируется в командной строке или через конфигурацию активации.