Hi Nicola,

> -----Original Message-----
> From: Nicola Ken Barozzi [mailto:[EMAIL PROTECTED]]
> Sent: 04 July 2002 16:00
> To: [EMAIL PROTECTED]; Turbine Maven Users
List
> Subject: Re: [Centipede] Final proposal
> 
> 
> James Strachan wrote:
> > From: "Nicola Ken Barozzi" <[EMAIL PROTECTED]>
> >
> >>James Strachan wrote:
> ...
> >>>add pre/post processing easily.
> >>
> >>Which is exactly what we want to avoid.
> >>Pre and Post are used for decorating an existing build, ie enhancing
> >>present functionality.
> >>
> >>Instead, we define /features/ centrally, and specify the sequence of
> >>"goal" to attain to have that feature.
> >>
> >>Let's assume you have a docs goal, with pre-goal and post-goal.
> >>What's the order in which you run the pre and post goals?
> >>A sequence I assume.
> >>Taking for granted that I wouldn't want to use the default goal
itself,
> >>I could simply do:
> >>
> >><feature name="docs">
> >>   <pre1/>
> >>   <pre2/>
> >>   <docs/>
> >>   <post1/>
> >>   <post2/>
> >></feature>
> >>
> >>No need of pres and posts.
> >
> > Sure, if your build is as simplistic as the above then that
mechanism
> works
> > fine in both Ant and Jelly. When you have a full build of multiple
> > inter-related goals/features with interrelated dependencies using
the
> above
> > simplistic model has many limitations, which we've been through on
the
> Maven
> > project. This is exactly why we stopped using Ant for callbacks -
its
> much
> > too painful for non-trivial stuff.
> 
> As I said, callback are not needed.
> Each plugin should be indipendent and not require other plugins; this
> make it easier to reuse and not dependent on other stuff.
> 
> Each target can say that it can partecipate in a feature, and that it
> can use stuff created by other features.

[snip]

Trying to have each plugin independent one of another is a nice goal.
But difficult to achieve without lots of build code duplication. Just
check the Ant dependency graphs
(http://www.teria.com/~koseki/vizant/examples.html), you'll see that
there are dependencies between functional build units. If you normalize
them, you duplicate lots of code.

Thus, we need a way to tell the master build that before we run our new
plugin, it has to run such and such targets/goals from such other
plugin. Yes, I know, we introduce plugin dependency but just as long as
our new plugin only relies on core plugins there is no problem (same
issue as Ant build files relying on core ant tasks vs optional ones - we
just abstract one level higher, plugins instead of tasks).

In addition, let's say I add a Test Coverage plugin. As a user, I may or
may not want it to be called when I run the "site" target to generate
the web site. Thus I need a way to tell this to Maven.

Maven provides a default wiring of targets but we need to let the user
the ability to add either his own build code before/after or change the
order of targets (not sure we have that yet in Maven, do we Jason/Bob ?
I mean can a user change the default sequence order of targets ?).

I don't see what is wrong with that ?

Thanks
-Vincent


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

Reply via email to