[ http://jira.codehaus.org/browse/MNG-3284?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brian Fox updated MNG-3284: --------------------------- Attachment: MNG-3284.patch Attaching an svn patch by hand applying these changes to 2.0.9. The IT is already committed to the core-its but with this patch there is a crash: INFO] ------------------------------------------------------------------------ [ERROR] FATAL ERROR [INFO] ------------------------------------------------------------------------ [INFO] The PluginDescriptor for the plugin Plugin [org.apache.maven.plugins:maven-plugin-plugin] was not found. [INFO] ------------------------------------------------------------------------ [INFO] Trace java.lang.IllegalStateException: The PluginDescriptor for the plugin Plugin [org.apache.maven.plugins:maven-plugin-plugin] was not found. at org.apache.maven.plugin.DefaultPluginManager.addPlugin(DefaultPluginManager.java:329) at org.apache.maven.plugin.DefaultPluginManager.verifyVersionedPlugin(DefaultPluginManager.java:215) If you can fix the patch and reattach, then we can include for 2.0.9 > 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 > Assignee: Brian Fox > Priority: Critical > Fix For: 2.0.9 > > Attachments: > 0001-Initial-fix-to-see-if-we-can-have-1-version-of-a-pl.patch, > 0001-Initial-fix-to-see-if-we-can-have-1-version-of-a-pl.patch.svn, > maven-bug-2.tar, MNG-3284.patch, mng3284-usingCachedPlugins.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