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 );