Есть ли способ убедиться, что пользователь не может установить модуль только с профилем-b? или автоматически активировать профиль -a, если профиль-b используется один?
Нет, нет способа вызвать профиль из другого (не поддерживается, см. ответ Бретта на связанный вопрос) или строго запретить использование данного профиля.
Лучшее, что вы можете сделать, это использовать активацию свойства и свойство common для активации обоих профилей:
<project>
...
</dependencies>
<profiles>
<profile>
<id>profile-a</id>
<activation>
<property>
<name>propertyX</name>
</property>
</activation>
</profile>
<profile>
<id>profile-b</id>
<activation>
<property>
<name>propertyX</name>
</property>
</activation>
</profile>
</profiles>
</project>
И передача свойства при вызове mvn вызовет их обоих:
$ mvn help:active-profiles -DpropertyX
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Q4099626 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-help-plugin:2.1.1:active-profiles (default-cli) @ Q4099626 ---
[INFO]
Active Profiles for Project 'com.stackoverflow:Q4099626:jar:1.0-SNAPSHOT':
The following profiles are active:
- profile-a (source: pom)
- profile-b (source: pom)
Это не идеально, но в настоящее время это лучшее, что вы можете получить.
Похожие вопросы