Repository: maven Updated Branches: refs/heads/master 15a947fae -> 9fef375bb
[MNG-6135] Maven plugins and core extensions are not dependencies, they should be resolved the same way as projects. o Updated to correctly simulate project resultion. The session's dependency selector cannot be used because it will not work in project resolution mode the way the resolver is called. Calling the session's dependency manager for the first time must be skipped because that also will not work in project resolution mode the way the resolver is called. Project: http://git-wip-us.apache.org/repos/asf/maven/repo Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/9fef375b Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/9fef375b Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/9fef375b Branch: refs/heads/master Commit: 9fef375bb0947bdc8ae5ca1ffe5b69d3fd31a4ab Parents: 15a947f Author: Christian Schulte <[email protected]> Authored: Sat Dec 17 05:00:44 2016 +0100 Committer: Christian Schulte <[email protected]> Committed: Sat Dec 17 05:00:44 2016 +0100 ---------------------------------------------------------------------- .../DefaultPluginDependenciesResolver.java | 29 +++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven/blob/9fef375b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java ---------------------------------------------------------------------- diff --git a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java index 019a636..f02be6a 100644 --- a/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java +++ b/maven-core/src/main/java/org/apache/maven/plugin/internal/DefaultPluginDependenciesResolver.java @@ -197,7 +197,17 @@ public class DefaultPluginDependenciesResolver class PluginDependencyManager implements DependencyManager { - private final List<Artifact> exlusions = new LinkedList<>(); + private int depth; + + private DependencyManager defaultManager = session.getDependencyManager(); + + private List<Artifact> exlusions = new LinkedList<>(); + + PluginDependencyManager() + { + super(); + this.depth = 0; + } @Override public DependencyManagement manageDependency( final org.eclipse.aether.graph.Dependency dependency ) @@ -220,8 +230,8 @@ public class DefaultPluginDependenciesResolver } } - return !excluded && session.getDependencyManager() != null - ? session.getDependencyManager().manageDependency( dependency ) + return !excluded && this.depth >= 2 && this.defaultManager != null + ? this.defaultManager.manageDependency( dependency ) : null; } @@ -230,10 +240,12 @@ public class DefaultPluginDependenciesResolver public DependencyManager deriveChildManager( final DependencyCollectionContext context ) { assert context.getDependency() != null : "Unexpected POM resolution."; - return session.getDependencyManager() != null - ? session.getDependencyManager().deriveChildManager( context ) - : null; + this.depth++; + this.defaultManager = this.defaultManager != null + ? this.defaultManager.deriveChildManager( context ) + : null; + return this; } public List<Artifact> getExclusions() @@ -253,10 +265,7 @@ public class DefaultPluginDependenciesResolver try { final DependencySelector pluginDependencySelector = - session.getDependencySelector() != null - ? new AndDependencySelector( new PluginDependencySelector(), new WagonExcluder(), - session.getDependencySelector() ) - : new AndDependencySelector( new PluginDependencySelector(), new WagonExcluder() ); + new AndDependencySelector( new PluginDependencySelector(), new WagonExcluder() ); final DependencyGraphTransformer pluginDependencyGraphTransformer = ChainedDependencyGraphTransformer.newInstance( session.getDependencyGraphTransformer(), transformer );
