Использование профилей для управления модулями Maven
У меня есть следующий XML в моем maven POM.xml:
<profiles>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>default</name>
<value>!disabled</value>
</property>
</activation>
<modules>
<module>m1</module>
<module>m2</module>
<module>m3</module>
</modules>
</profile>
<profile>
<id>x</id>
<modules>
<module>m1</module>
</modules>
</profile>
</profiles>
Я пытаюсь добиться этого:
-
Когда я запускаю mvn install
, я хочу, чтобы он создавал проекты m1, m2 и m3.
-
Когда я запускаю mvn install -Px
, я хочу, чтобы он только построил m1.
Моя текущая проблема заключается в том, что с помощью кода выше, вариант 2 строит все m1, m2 и m3.
Ответы
Ответ 1
Найден парни решения, сначала определите профиль "x" и "default", и он отлично работает (безумный Maven!!). Здесь конечный результат:
<profiles>
<!-- DO NOT CHANGE THE *ORDER* IN WHICH THESE PROFILES ARE DEFINED! -->
<profile>
<id>x</id>
<modules>
<module>m1</module>
</modules>
</profile>
<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>m1</module>
<module>m2</module>
<module>m3</module>
</modules>
</profile>
</profiles>
Ответ 2
Вы можете отключить профили maven, у которых runByDefault
установлено значение true из командной строки следующим образом:
mvn install -P !default
Примечание. Для этого требуется версия Maven версии 2.0.10.
Ответ 3
Просто добавьте пробел после -P, синтаксис команды
mvn install -P x
И не так, как вы используете
mvn install -Px
Взгляните на Maven - введение в профили