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