Hi John,
That looks very interesting!
BTW, what is 'Just-in-time lifecycle discovery and configuration'?
Rahul
John Casey wrote:
Hi all,
I've written up the new features present in the refactored lifecycle
support for 2.1, if anyone is interested in reading it. I'd like to
hear what you all think, particularly about the emerging discussion of
aggregator plugins, pre-exec "plugins", and such taking place on the
page comments.
In brief, we have numerous problems with aggregator plugins, whether
you're talking about binding these to a lifecycle phase, resolving
dependencies of these plugins that actually are present in the current
reactor, timing of execution (particularly in multimodule builds where
the plugin needs the output of module builds, see the assembly plugin
outstanding bugs for this one), and more. In addition, there has been
an expressed need for a sort of pre-execution phase that would allow
plugins to manipulate dependency lists, mojo bindings, etc. before the
build proper starts. Finally, there is some discussion about mojos
that can conditionally choose to fork a nested execution or not,
depending on how they're used...which also brings up the idea of
letting a mojo discover where and how it's being used.
IMO, these issues represent the next iteration of Maven build
definition. They are the next frontier for the work we're trying to do
in Maven in many ways, and it seems like they deserve a healthy design
discussion each. In the case of aggregator plugins and the
pre-execution phase, it may make more sense to go back to first
principles and see whether we can come up with a single replacement
solution to aggregators that would address both types of problem.
Please comment if you have an opinion on this.
Thanks,
-john
---
John Casey
Committer and PMC Member, Apache Maven
mail: jdcasey at commonjava dot org
blog: http://www.ejlife.net/blogs/john
rss: http://feeds.feedburner.com/ejlife/john
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]