[ http://jira.codehaus.org/browse/MNG-3284?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nigel Magnay updated MNG-3284: ------------------------------ Attachment: maven-bug-2.tar This is an easy-to-reproduce test : Build the module mojo Build the module mojo2 then from top level do mvn install it should use 2 different versions, you can observe that it only uses one. > Cached plugins are used, even when the specifically declared > ------------------------------------------------------------- > > Key: MNG-3284 > URL: http://jira.codehaus.org/browse/MNG-3284 > Project: Maven 2 > Issue Type: Bug > Components: Dependencies, Plugins and Lifecycle > Affects Versions: 2.0.7 > Reporter: Nigel Magnay > Priority: Critical > Attachments: maven-bug-2.tar, pluginbug.tar > > > In the attached project, you can build module A, then build module B, but the > top level aggregator project will fail at B. > The reason this happens is that maven seems to cache plugins. When B is built > in isolation, all things are fine - but when built in aggregation, one of the > plugins that it uses has already been instantiated, and so it uses that one. > This is incorrect, since the declared version is different in B, and is > relying on functionality not present in the version declared in A. > I have seen similar behaviour when a plugin relies on other plugins to get > work done - all of a sudden a build mysteriously stops working, because of a > completely unrelated plugin. > This is pretty painful because > - it's possible to get into a 'no solution', where one project relies on one > behaviour so can't upgrade, and one project relies on new behaviour, so can't > downgrade. > - you get builds that work OK in isolation, but not in their project. This is > bad. Also builds tied together in bigger aggregator projects can fail in > mysterious ways (mysterious because the user /has/ specified the plugin > version, and maven has ignored them, or it's a plugin dependency that got > there first) > - subtle build ordering changes can cause new failures (the example has B > depend on A - but the bug might only manifest itself in certain build orders > that change even when B and A don't). -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira