diff --git a/src/main/java/org/apache/maven/plugin/resources/remote/ModelUtils.java b/src/main/java/org/apache/maven/plugin/resources/remote/ModelUtils.java index bc94f83..7d89bdd 100644 --- a/src/main/java/org/apache/maven/plugin/resources/remote/ModelUtils.java +++ b/src/main/java/org/apache/maven/plugin/resources/remote/ModelUtils.java @@ -105,16 +105,18 @@ public static void mergePluginLists( parentPlugin.unsetInheritanceApplied(); } } + } - // very important to use the parentPlugins List, rather than parentContainer.getPlugins() - // since this list is a local one, and may have been modified during processing. - List results = - ModelUtils.orderAfterMerge(assembledPlugins, parentPlugins, childContainer.getPlugins()); + // very important to use the parentPlugins List, rather than parentContainer.getPlugins() + // since this list is a local one, and may have been modified during processing. + // The ordering only depends on the final assembled plugins, so compute it once after + // the loop instead of on every iteration. + List results = + ModelUtils.orderAfterMerge(assembledPlugins, parentPlugins, childContainer.getPlugins()); - childContainer.setPlugins(results); + childContainer.setPlugins(results); - childContainer.flushPluginMap(); - } + childContainer.flushPluginMap(); } }