You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sc...@apache.org on 2016/12/18 05:19:23 UTC
maven git commit: [MNG-6135] Maven plugins and core extensions are
not dependencies,
they should be resolved the same way as projects. [MNG-5761] Dependency
management is not transitive.
Repository: maven
Updated Branches:
refs/heads/master bbffde98f -> 06580630a
[MNG-6135] Maven plugins and core extensions are not dependencies, they should be resolved the same way as projects.
[MNG-5761] Dependency management is not transitive.
o Updated to make any dependencies added to a plugin in a consuming POM
using the 'plugin/dependencies/dependency' element override not only the
dependencies resolved for the plugin but also any dependency management
applied.
Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/06580630
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/06580630
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/06580630
Branch: refs/heads/master
Commit: 06580630a3b09143770fd8eeda6c86f70a016f4d
Parents: bbffde9
Author: Christian Schulte <sc...@apache.org>
Authored: Sun Dec 18 06:12:57 2016 +0100
Committer: Christian Schulte <sc...@apache.org>
Committed: Sun Dec 18 06:18:33 2016 +0100
----------------------------------------------------------------------
.../DefaultPluginDependenciesResolver.java | 34 +++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven/blob/06580630/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 25d582d..b46c35d 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
@@ -61,6 +61,7 @@ import org.eclipse.aether.util.graph.manager.DependencyManagerUtils;
import org.eclipse.aether.util.graph.selector.AndDependencySelector;
import org.eclipse.aether.util.graph.selector.ExclusionDependencySelector;
import org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
+import org.eclipse.aether.util.graph.visitor.PreorderNodeListGenerator;
import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy;
/**
@@ -307,7 +308,15 @@ public class DefaultPluginDependenciesResolver
pluginDep = pluginDep.setScope( JavaScopes.RUNTIME );
}
request.addDependency( pluginDep );
- pluginDependencyManager.getExclusions().add( pluginDep.getArtifact() );
+
+ if ( logger.isDebugEnabled() )
+ {
+ logger.debug( String.format( "Collecting plugin dependency %s from project.", pluginDep ) );
+ }
+
+ pluginDependencyManager.getExclusions().
+ addAll( this.collectPluginDependencyArtifacts( session, repositories, pluginDep ) );
+
}
// [MNG-6135] Maven plugins and core extensions are not dependencies, they should be resolved the same way
@@ -343,6 +352,29 @@ public class DefaultPluginDependenciesResolver
}
}
+ private List<org.eclipse.aether.artifact.Artifact> collectPluginDependencyArtifacts(
+ final RepositorySystemSession session, final List<RemoteRepository> repositories,
+ final org.eclipse.aether.graph.Dependency pluginDependency )
+ throws DependencyCollectionException
+ {
+ final CollectRequest request = new CollectRequest();
+ request.setRequestContext( REPOSITORY_CONTEXT );
+ request.setRepositories( repositories );
+ request.setRoot( pluginDependency );
+ request.setTrace( RequestTrace.newChild( null, pluginDependency ) );
+
+ final DependencyNode node = repoSystem.collectDependencies( session, request ).getRoot();
+
+ if ( logger.isDebugEnabled() )
+ {
+ node.accept( new GraphLogger() );
+ }
+
+ final PreorderNodeListGenerator nlg = new PreorderNodeListGenerator();
+ node.accept( nlg );
+ return nlg.getArtifacts( true );
+ }
+
// Keep this class in sync with org.apache.maven.project.DefaultProjectDependenciesResolver.GraphLogger
class GraphLogger
implements DependencyVisitor