Hi, Before my involvement in this project, we would make a branded version of our software by going into the pom and changing <artifactId>development-brand</artifactId> to <artifactId>ad-brand</artifactId> in a <dependency> declaration, for a number of brands, then running mvn assembly:assembly again. This worked, but was so awkward that branded versions just didn't get built until somebody basically begged for them.
I've moved the dependency stating development-brand to a profile named development-brand, and created a number of other profiles for each brand. If I use mvn assembly:assembly -Pad-brand,-development-brand I get an AD-branded version, which is nice, but now just mvn assembly:assembly does not work at all; the build completes but the application won't start because of a missing dependency. mvn help:active-profiles confirms that development-brand is not included by default. An activation of <activeByDefault>true</activeByDefault> for development-brand won't help, as we always have another, pre-existing profile, activated, windows, linux or osx. Naming the profile 'default' won't help either for the same reason. I tried, in the ad-brand profile, setting <properties><brand>ad-brand</brand></properties> and having development-brand <activation><property>!brand</property></activation>, but then found that development-brand was activated all the time, unless explicitly deactivated on the command-line, which at least makes the default case of no -P parameter work. It seems like the activations are all decided before the first activated profile's elements are used. So my question is; how can I make it so that development-brand is activated only if none of the other brands are? -- Ricky Clarkson Java and Scala Programmer, AD Holdings +44 1565 770804 Skype: ricky_clarkson Google Talk: [email protected] Google Wave: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
