Revisiting MNG-6209 (inconsistent activation of components from multiple extensions=true plugins) revisited
This was the issue reverted after 3.5.1, which should deserve a revisit.
Stephen created a sample project to show the effects when working with
I've created a matrix with the changes of behavior between 3.5.0 and
There's also documentation about this topic, especially the plugin
classloaders-chapter is of interest here.
I first want to agree on what should be visible at every stage, so let me
try to make a start (I ignore the order of loading for now):
In this case it must see all Lifecycle instances, getting them from
extensions, plugins marked as extension and the plugin itself.
2. The Plugin Classloader should only contain the plugin classes, it
should NOT have access to extensions.
3. The Thread CL, I don't have an answer for that yet. In Maven 3.5.0 it
was always the same the Plugin CL, but in Maven 3.5.1 it often wasn't.
Maybe the most important question is: when do you want to switch to the
To make the discussion a little bit better to understand: Have a look at
the ListMojo and wonder for every classloader: should it have access to
a specific resource? e.g. we discovered that maven-assembly-plugin
Also have a look at earlier discussion
IMO Maven does have incorrect behavior right now. e.g. if I want to use
scm-local with maven-release-plugin (for demo purpose) I must add it as a
dependency to the plugin, whereas the correct way is to add it as an
So it would be great to have this fixed in Maven 3.6.x