>>> Basically a profile should only be used to either >>> a) externalise OS dependent settings, e.g. location of eclipse installation. >>> In general for all most all maven plugins you never need to do this
Why else would you use a profile? So we have three per environment we activate: 1 - base (has all the generic stuff used across all environments 2 - StackDefaults (this is all the default stuff per qa/staging/production environments - everything that's different between these and a developer's machine) 3 - color (all of our stacks are color coded - things like db strings go in here) So when we build, we activate via -Pbase,StackDefaults,<color> Depending on what the "color" profile is, via help:active-profiles, we can see sometimes <color> comes before StackDefaults - which basically nullifies itsself. >>> You are using -Ppersonal,StackDefaults,ca-lime,root which just feels wrong. Why? How else do you say, "take everything from this semi-generic profile, PLUS what is defined as a stack default AND override all that with this VERY specific stuff in this ca-lime profile (just ignore "root" for the time being as it needs to specify the directory the build is happening in) >>> Why are you having to select these values? Because for our stack defaults, we have a large set of c-name settings. Instead of having each color profile that had 9134806709328476 entries, we plopped them all in StackDefaults. This way when it comes time to add on a new stack, people don't look at it and say, "ZOMG - LOOK AT ALL THOSE ENTRIES!!! I'll never figure this out". Then get releng involved. Then get dev involved. Then get ops involved. The way it works now is you add a color profile and talk to the dbas for what the password should be for that env. >>> Why are they not the defined defaults? We have two degrees of defined defaults. This is where I think we break from the mvn norm. We have a VERY complex environemtal set up in staging and production. We have 4 web servers, 5 jboss app servers, 2 atg util servers, the list goes on and on - in total 25 with MANY various purposes. Where when we try to stick to convention over configuration, it forced us down this path. >>> There was a discussion a while ago about multiple build for different >>> configurations, e.g. Tomcat/War, JBoss/Ear, etc. I can't recall the >>> result of the discussion. >>> But if you always want to build each of these configurations then you >>> may want to consider creating a module per configuration that has all >>> the correct settings defined for that build. Heh - what we're doing is building a "main" bin type distirubtable that is mis-configured (because we're only activating the personal profile with next to no other profile). That alone is about 220 mb. If we had to generate that for each stack, that'd be 15 of those puppies. Plus, we still have to build up the atg ca app, util app, email server - the list goes on. Add to this that we currently have 7 active branches. You start to see how big a disk that would require. This is why we build ONE main binary then a configuration for each environment. The config files are tiny, maybe 10 kb. I think your suggestions are valid, but only for a very plain-jane build env and environment (which ours is not). How about mvn fixing this buggy profile override code? I can see it's targeted for 2.1 (now)... --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]