Hi Felix,

On 6 sept. 2010, at 17:19, Felix Knecht wrote:

Hash: SHA1

A normal "mvn clean install" should build all modules.

+1 - That's what I do when trying out anything maven build based before
doing RTFM.

You're right.

And a "mvn clean install -P !studio-full" should deactivate the
profile and hence skip the modules.

With the following diff, all modules are built by default and the 'not-code' plugins are excluded when running the following command lines:
- mvn clean install -Dfastbuild
- mvn clean install -P-studio-full

What happens when using "-Dfastbuild -Pstudio-full"? Isn't it rather
confusing having to different variations to force the same profile. Once
by indicating the profile once by setting a property? What's the benefit
of it?

When using 'mvn clean install -Dfastbuild -Pstudio-full', the 'studio-full' profile is activated.

Actually there's no benefit of using both profile id or the property, it's just that you have the choice of using one of them.
I tried to use the 'activeByDefault' activation property but it can't work properly with our other profiles.
When setting this property on a profile, all other active by default profiles are deactivated.

Quoting the Maven documentation at [1]:
All profiles that are active by default are automatically deactivated when a profile in the pom is activated on the command line or through its activation config.

So I used the property based activation to solve this.

However, I found a more clever solution and we could use the activation based on presence of the 'pom.xml' file.

Using the following diff on Studio's trunk, by default, 'mvn clean install' would build everything, and 'mvn clean install -P-studio-full' (notice the '-' in front of studio-full) would only build the core code plugins:
MacBookPro:Studio pajbam$ svn diff
Index: pom.xml
--- pom.xml (revision 992968)
+++ pom.xml (working copy)
@@ -133,6 +133,11 @@
+     <activation>
+        <file>
+          <exists>pom.xml</exists>
+        </file>
+     </activation>



[1]  http://maven.apache.org/guides/introduction/introduction-to-profiles.html