You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2021/05/24 13:03:08 UTC

[maven-dependency-tree] 01/01: [MSHARED-519] DependencyGraphBuilder should not download dependencies other than the pom

This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch MSHARED-519
in repository https://gitbox.apache.org/repos/asf/maven-dependency-tree.git

commit b330fa93b70e35c70a8afa75f0404cf47d5935d6
Author: rfscholte <rf...@apache.org>
AuthorDate: Mon May 24 15:02:50 2021 +0200

    [MSHARED-519] DependencyGraphBuilder should not download dependencies other than the pom
---
 .../graph/internal/Maven31DependencyGraphBuilder.java       | 12 ++++++++++++
 .../graph/internal/Maven3DependencyGraphBuilder.java        | 13 +++++++++++++
 2 files changed, 25 insertions(+)

diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
index 532a507..9e8089f 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
@@ -47,6 +47,7 @@ import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.graph.Dependency;
+import org.eclipse.aether.graph.DependencyFilter;
 import org.eclipse.aether.graph.Exclusion;
 import org.eclipse.aether.util.graph.manager.DependencyManagerUtils;
 import org.eclipse.aether.version.VersionConstraint;
@@ -126,6 +127,17 @@ public class Maven31DependencyGraphBuilder
         final DependencyResolutionRequest request = new DefaultDependencyResolutionRequest();
         request.setMavenProject( project );
         Invoker.invoke( request, "setRepositorySession", RepositorySystemSession.class, session );
+        // only download the poms, not the artifacts
+        DependencyFilter collectFilter = new DependencyFilter()
+        {
+            @Override
+            public boolean accept( org.eclipse.aether.graph.DependencyNode node,
+                                   List<org.eclipse.aether.graph.DependencyNode> parents )
+            {
+                return false;
+            }
+        };
+        Invoker.invoke( request, "setResolutionFilter", DependencyFilter.class, collectFilter );
 
         final DependencyResolutionResult result = resolveDependencies( request, reactorProjects );
         org.eclipse.aether.graph.DependencyNode graph =
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
index 39e2a35..3eedffd 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
@@ -42,6 +42,7 @@ import org.apache.maven.shared.dependency.graph.DependencyNode;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.sonatype.aether.graph.DependencyFilter;
 import org.sonatype.aether.graph.Dependency;
 import org.sonatype.aether.version.VersionConstraint;
 
@@ -95,6 +96,18 @@ public class Maven3DependencyGraphBuilder
         DependencyResolutionRequest request =
             new DefaultDependencyResolutionRequest( project, buildingRequest.getRepositorySession() );
 
+        // only download the poms, not the artifacts
+        DependencyFilter collectFilter = new DependencyFilter()
+        {
+            @Override
+            public boolean accept( org.sonatype.aether.graph.DependencyNode node,
+                                   List<org.sonatype.aether.graph.DependencyNode> parents )
+            {
+                return false;
+            }
+        };
+        request.setResolutionFilter( collectFilter );
+
         DependencyResolutionResult result = resolveDependencies( request, reactorProjects );
 
         return buildDependencyNode( null, result.getDependencyGraph(), project.getArtifact(), filter );