我假设您希望默认构建始终构建所有内容,而不管速度如何,以便新开发人员可以快速入门,而不必了解很多有关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>