Я припускаю, що ви хочете, щоб збірка за замовчуванням завжди будувала все, незалежно від швидкості, щоб нові розробники могли швидко розпочати роботу, не розуміючи багато про POM. Ви можете використовувати такі профілі:
<modules>
<module>common</module>
<module>foo</module>
<module>bar</module>
</modules>
...
<profiles>
<profile>
<id>expensive-modules-to-build</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>data</module>
</modules>
</profile>
</profiles>
</project>
Проблема з цим полягає в тому, що якщо розробник вказує інший профіль у командному рядку, він expensive-modules-to-buildне включається (якщо розробник також не вказує його). Це ускладнює пригадування, які профілі потрібно включити.
Ось хакітний спосіб цього зробити. Обидва профілі завжди включені, оскільки файл pom.xml завжди існує. Отже, щоб виключити дорогі модулі, ви можете використовувати -P!full-buildв командному рядку.
<profiles>
<profile>
<id>full-build</id>
<activation>
<file>
<exists>pom.xml</exists>
</file>
</activation>
<modules>
<module>data</module>
</modules>
</profile>
<profile>
<id>short-build</id>
<activation>
<file>
<exists>pom.xml</exists>
</file>
</activation>
<modules>
<module>common</module>
<module>foo</module>
<module>bar</module>
</modules>
</profile>
</profiles>