In Maven, can a profile override the modules (to not include any)

maven, maven-3

Solution

It's not possible. Profile configuration is always merged with main configuration, so you only can add modules in your case.

What you can do instead, however, is to create a some kind of "default" profile (by `<activeByDefault>true</activeByDefault>` in `<activation>` section) that is enabled when no other profiles are invoked and put your default modules' list there. Then, when no profile is specified on Maven build call, this "default" profile is used, but when you call explicitly at least one profile, it's not, so you can this way define modules' list from scratch.

Problem

In `maven`, once you define your `modules` in you `pom.xml` all profiles aggregate the modules defined in them: (relevant part only) ``` <project> <modules> <module>module1</module> </modules> <profiles> <profile> <id>pr1</id> <modules> <moudule>module2</module> </modules> ``` If you perform a `mvn clean` it will pass the command to `module1`. If you issue `mvn clean -Ppr1` it will pass along to `module1` and `module2`. I wonder if in `maven 3` it is possible to have a `pom.xml` with submodules and override this. I mean to execute a profile that instead of add their own modules to the build force those like: ``` <project> <!-- omitted --> <modules> <!-- modules --> </modules> <build> <!-- build --> </build> <profiles> <profile> <!-- This profile with no modules --> </profile> </profiles> </project> ``` The requirement might sound silly, but I just want to know if there is a mechanism like in plugin configuration. ``` <configuration self.combine="override" ``` Regards! ssedano

Original source