Я припускаю, що ви хочете, щоб збірка за замовчуванням завжди будувала все, незалежно від швидкості, щоб нові розробники могли швидко розпочати роботу, не розуміючи багато про 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>