Correct me if I'm wrong, but you are changing the parent-pom in you projects??
Doesn't sound like very stable development to me...
Anyway, there is a way to activate profiles based on parent-POMs, it's just
not a very obvious one...
If you set your profiles to be activated when a specific property is set to a
specific value, you can configure all your profiles as you want and set these
properties with the correct values in the parent-POM.
Example:
<profiles>
<profile>
<activation>
<property>
<name>parentPom</name>
<value>firstParent</value>
</property>
</activation>
<modules>
<module>module1</module>
</module>
</profile>
<profile>
<activation>
<property>
<name>parentPom</name>
<value>secondParent</value>
</property>
</activation>
<modules>
<module>module2</module>
<module>module3</module>
</module>
</profile>
</profiles>
And then in the first parent-POM you define something like:
<properties>
<parentPom>firstParent</parentPom>
</properties>
And in the second:
<properties>
<parentPom>secondParent</parentPom>
</properties>
Mind you that I haven't tested this, but from normal logic I think this should
work. At least it's worth a try, 'cause you don't need to trigger the
profiles from the commandline this way.
Oh, and in case I misunderstood your problem and therefore this is not a
solution to it, please feel free to post again and help me understand
better. ;-)
Roland
On Thursday 08 November 2007 11:59, Aaron Zeckoski wrote:
> I am trying to build a limited set of modules based on the parent pom
> file being used. I tried using profiles but there does not seem to be
> a way to trigger a profile based on the parent POM. Here is the
> scenario I am trying to figure out. I have a project base POM which
> has a number of modules. I want to build various subsets of those
> modules depending on a setting in the parent POM for this base POM.
>
> Here is a sample base POM:
> <modules>
> <module>api</module>
> <module>impl</module>
> <module>tests</module>
> <module>alternate-impl</module>
> <module>tool</module>
> </modules>
>
> I would like to build just the api and impl modules in circumstance
> one (services only).
> <modules>
> <module>api</module>
> <module>impl</module>
> </modules>
>
> I would like to optionally add in the tests module and/or the tool
> module to include the tests or the webapp.
> <modules>
> <module>api</module>
> <module>impl</module>
> <module>tool</module>
> </modules>
>
> I would also like to be able to specify that I need to use an
> alternate implementation of the service in place of the current impl
> when the service is built.
> <modules>
> <module>api</module>
> <module>alternate-impl</module>
> <module>tests</module>
> </modules>
>
> The final key here is that the parent POM for this project base POM
> will change depending on which set of source code is checked out.
> Currently we have one parent POM which includes all the base POMs for
> all central services and then one which includes modules for all the
> optional services. This has a huge limitation in that we have redefine
> base poms for all the core services to exclude the accompanying
> webapps and tests. I would ideally like to automate this since
> currently we have to maintain huge lists of modules in both (soon to
> be three) the parent POMs.
>
> It looks like I can accomplish this via profiles, except that those
> require lots of command line parameters. Is there a way to do this
> where the user would not have put a huge number of command line
> paramters down or am I stuck maintaining multiple parent POMs with
> huge lists of modules and multiple base POMs for each project?
>
> Open to suggestions about restructuring the project layout as well.
> Here is an example of one version of parent POM and a set of base POMs:
> https://source.sakaiproject.org/svn/cafe/trunk/
>
> -AZ
--
Roland Asmann
CFC Informationssysteme Entwicklungsgesellschaft m.b.H
Bäckerstrasse 1/2/7
A-1010 Wien
FN 266155f, Handelsgericht Wien
Tel.: +43/1/513 88 77 - 27
Fax.: +43/1/513 88 62
Email: [EMAIL PROTECTED]
Web: www.cfc.at
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]