Profile defined in a profiles.xml cannot contain any plugins. So i don't see
how i could use this to invoke plugins (plugin executions) defined in the
corporate pom.

Kind Regards,
Wouter Hermeling


Brian E Fox wrote:
> 
> I was told today that profiles defined in the profiles.xml are inherited
> and can be activated selectively in the child modules. I am skeptical,
> but it's work a look.
> 
> -----Original Message-----
> From: Wouter Hermeling [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, February 12, 2008 11:39 PM
> To: [email protected]
> Subject: Looking for lifecycle execution reusability (building a
> corporate pom)
> 
> 
> Hi,
> 
> To make a long story short, i will begin with the questiom:
> 
> I'm trying to figure out what is the Maven way to do this. How can i put
> up
> standards for different kind of poms types (ejb's, assemblies, ears,
> etc) in
> a multimodule environment without using different parents?
> 
> -- The long story --
> I'm migrating an entire build environment from ant to maven2 for a
> company
> with many, many projects.
> 
> The most important thing is the corporate pom. This contains all
> configuration about how to build ejb's, wars, assemblies. This has been
> put
> mainly in the pluginManagement section, to be activated by sub poms.
> 
> Now i'm working on many multimodule projects. The modules have the
> multimodule project as parent, so we can define properties and
> dependency(management) for an entire multimodule project.
> 
> So far so good. However when i setup de poms for modules i still have to
> explicitly activate all the plugins it needs. For instance, for an
> assembly
> module i have to invoke 5 different plugins (1 *
> dependency:copy-dependencies, 3 * scm:checkout, 1 * assembly:package).
> Although, the configuration of these plugins are setup in the corporate
> pom,
> i still have to activate the plugins in each module.
> 
> So i'm basically duplicating plugin invocations for each module. I'm
> trying
> a way to solve this. Of course i could create different corporate poms,
> like:
> 1. corporate assembly pom
> 2. corporate ear pom
> 3. ...
> and let the modules inherit from that. But this disables the reuse of
> properties and dependencies on in multimodule projects poms.
> 
> I've tried to following things:
> 1. Profiles
> Put plugin invocations in profiles and let modules activate them.
> -> This does not work. There is no way to activate a profile (defined in
> the
> corporate pom) for a specific module. The profile will be activated for
> all
> modules or for none. They only way to activate a profile for a specific
> module, is to define the entire profile in that module. No option.
> 2. Create different lifecycle
> Using plexus, creating a new lifecycle with new phases. If i could
> create
> new phases, then i could for instance create specific assembly phases
> and
> bind plugins to those phases. The lifecycle should be activated by
> specifying a new kind of pom packaging.
> -> Creating new phases is not supported by maven (there is only little
> documentation about this)
> 3. Create plugins to alter maven
> If tried creating plugins like ProfileActivators (which inject profiles
> in
> specific conditions).
> -> This does not work. They entire lifecycle execution seems to have
> been
> build up in advance. There seems no way to alter this.
> 4. Write my own plugins to replace the invocation different plugins.
> -> This is no good. Since plugins/mojo cannot be reused i end up
> rewriting a
> lot of plugin code. And rewriting the scm plugin for instance..., just
> seems
> to be a bad thing to me.
> 5. Use the maven-invoker-plugin to let each module invoke itself with a
> predefined profile.
> The only plugin in a module would be the invoker plugin.
> -> This works, but.... this will startup a new maven reactor for each
> module. I'm not facing lifecycle issues YET, but also this seems to be a
> bad
> thing.
> 
> --
> 
> So to summarize again:
> 
> I'm trying to figure out what is the Maven way to do this. How can i put
> up
> standards for different kind of poms types (ejb's, assemblies, ears,
> etc) in
> a multimodule environment without using different parents?
> 
> Basically i'm looking for lifecycle execution reusability. Define a set
> of
> plugin invocations including configuration in a corporate pom. And
> activate/reuse this lifecycle execution in a specific module, keeping
> the
> pom of the module clean.
> 
> I've also read Deterministic Lifecycle Planning to come with maven 2.1
> (can't wait :)) and i'm trying to figure out if that would solve these
> issues.
> 
> Can anybody comment on this?
> 
> -- 
> View this message in context:
> http://www.nabble.com/Looking-for-lifecycle-execution-reusability-%28bui
> lding-a-corporate-pom%29-tp15450774s177p15450774.html
> Sent from the Maven Developers mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Looking-for-lifecycle-execution-reusability-%28building-a-corporate-pom%29-tp15450774s177p15517746.html
Sent from the Maven Developers mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to