私は、デフォルトのビルドで速度に関係なく常にすべてをビルドして、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>