The current support for profiles is somewhat limited and this issue report proposes some enhancements to profiles for ease and flexibility of use.
Enhancement #1: Make it possible to have profiles that mutually exclude each other. A profile should be able to exclude one or more other profiles.
Example of usage: We have a couple of profiles for databas settings (MSSQL, PostgreSQL and Derby). Only one of these profiles should be able to be active at the same time. Today, we can't express this in the profiles section.
Enhancement #2: Make it possible to deactivate profiles from the command line.
Example of usage: User and/or project has a set of profiles that are activate per default. The user wants to temporary disable on or more of these (by temporary I mean for one execution).
Possible syntax might be: mvn -PsomeProfile=inactive|false|no or perhaps a separate command line switch.