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]

Reply via email to