기본 빌드가 속도에 관계없이 항상 모든 것을 빌드하여 새로운 개발자가 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>