On 29-Nov-08, at 4:04 PM, Benjamin Bentmann wrote:
Hi,
In the light of MNG-3866 [0], Shane and I had a short discussion
what should be the right behavior during model inheritance for
handling plugin definitions with different versions. Apparently,
that is something to discuss in the context of the community ;-), so
please comment.
In Maven 2.x, <plugin> sections are merged based on the plugin key
which consists of groupId:artifactId, i.e. does not contain the
plugin version (c.f. ModelUtils.mergePluginLists()). This differs
from Maven 3.x trunk where <plugin> definitions are currently only
merged if groupId, artifactId and version match (c.f.
ArtifactModelContainer.containerAction()).
So, what's the proper behaviour?
The case where the version is taken into consideration is the proper
way. As Shane already mentioned there is the case where configuration
may be different, but for whatever reason you may need a plugin
version that requires a different version of the plugin API. Something
that will change in 3.x is the ability to isolate an execution
environment given any set of artifacts. So in concrete terms it means
that each version of the plugin API will have its own execution
environment. In this way the old plugin API can be supported forever
and a new API, with plugins based on that, can co-exist peacefully
together indefinitely.
Benjamin
[0] http://jira.codehaus.org/browse/MNG-3866
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Thanks,
Jason
----------------------------------------------------------
Jason van Zyl
Founder, Apache Maven
jason at sonatype dot com
----------------------------------------------------------
happiness is like a butterfly: the more you chase it, the more it will
elude you, but if you turn your attention to other things, it will come
and sit softly on your shoulder ...
-- Thoreau
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]