diff --git a/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java b/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java index b4f7a4df23..3af1125341 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/DefaultBuildPluginManager.java @@ -106,8 +106,11 @@ public void executeMojo( MavenSession session, MojoExecution mojoExecution ) throw new PluginExecutionException( mojoExecution, project, e ); } + // use project realm as thread context classloader to enable components from all extensions=true plugins + ClassRealm tccl = mojoExecution.getPlugin().isExtensions() ? project.getClassRealm() : pluginRealm; + ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); - Thread.currentThread().setContextClassLoader( pluginRealm ); + Thread.currentThread().setContextClassLoader( tccl ); MavenSession oldSession = legacySupport.getSession();