WIP use Aether API
diff --git a/enforcer-rules/pom.xml b/enforcer-rules/pom.xml
index a974cd4..f380035 100644
--- a/enforcer-rules/pom.xml
+++ b/enforcer-rules/pom.xml
@@ -113,22 +113,6 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.apache.maven.shared</groupId>
- <artifactId>maven-dependency-tree</artifactId>
- <exclusions>
- <exclusion>
- <groupId>org.eclipse.aether</groupId>
- <artifactId>aether-util</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <!-- needed for ArtifactCollector and maven-dependency-tree 2.2 -->
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-compat</artifactId>
- <scope>compile</scope>
- </dependency>
- <dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java
index 4148c6f..a7f9283 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/AbstractBanDependencies.java
@@ -1,5 +1,4 @@
package org.apache.maven.plugins.enforcer;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -19,23 +18,22 @@
* under the License.
*/
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+
import org.apache.maven.artifact.Artifact;
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
-import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.logging.Log;
-import org.apache.maven.plugins.enforcer.utils.ArtifactUtils;
-import org.apache.maven.project.DefaultProjectBuildingRequest;
+import org.apache.maven.plugins.enforcer.utils.ResolverHelper;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuildingRequest;
-import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
-import org.apache.maven.shared.dependency.graph.DependencyGraphBuilderException;
-import org.apache.maven.shared.dependency.graph.DependencyNode;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
-import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
-
-import java.util.HashSet;
-import java.util.Set;
+import org.eclipse.aether.collection.DependencyCollectionException;
+import org.eclipse.aether.graph.DependencyNode;
+import org.eclipse.aether.repository.RemoteRepository;
/**
* Abstract Rule for banning dependencies.
@@ -49,7 +47,7 @@
/** Specify if transitive dependencies should be searched (default) or only look at direct dependencies. */
private boolean searchTransitive = true;
- private transient DependencyGraphBuilder graphBuilder;
+ private transient ResolverHelper resolverHelper;
@Override
public void execute( EnforcerRuleHelper helper )
@@ -58,41 +56,20 @@
MavenProject project;
try
{
- project = (MavenProject) helper.evaluate( "${project}" );
+ project = (MavenProject) Objects.requireNonNull( helper.evaluate( "${project}" ), "${project} is null" );
}
catch ( ExpressionEvaluationException eee )
{
throw new EnforcerRuleException( "Unable to retrieve the MavenProject: ", eee );
}
- MavenSession session;
- try
- {
- session = (MavenSession) helper.evaluate( "${session}" );
- }
- catch ( ExpressionEvaluationException eee )
- {
- throw new EnforcerRuleException( "Unable to retrieve the reactor MavenProject: ", eee );
- }
-
- try
- {
- graphBuilder = helper.getComponent( DependencyGraphBuilder.class );
- }
- catch ( ComponentLookupException e )
- {
- throw new EnforcerRuleException( "Unable to lookup DependencyGraphBuilder: ", e );
- }
-
- ProjectBuildingRequest buildingRequest =
- new DefaultProjectBuildingRequest( session.getProjectBuildingRequest() );
- buildingRequest.setProject( project );
+ resolverHelper = new ResolverHelper ( helper );
// get the correct list of dependencies
- Set<Artifact> dependencies = getDependenciesToCheck( helper, buildingRequest );
+ Map<Artifact, DependencyNode> dependencies = getDependenciesToCheck( helper, project );
// look for banned dependencies
- Set<Artifact> foundExcludes = checkDependencies( dependencies, helper.getLog() );
+ Set<Artifact> foundExcludes = checkDependencies( dependencies.keySet(), helper.getLog() );
// if any are found, fail the check but list all of them
if ( foundExcludes != null && !foundExcludes.isEmpty() )
@@ -107,12 +84,37 @@
for ( Artifact artifact : foundExcludes )
{
buf.append( getErrorMessage( artifact ) );
+ if ( dependencies.get(artifact) != null )
+ {
+ // emit location information
+ }
+
}
+ // TODO: better location message
+
message = buf.toString() + "Use 'mvn dependency:tree' to locate the source of the banned dependencies.";
throw new EnforcerRuleException( message );
}
+ }
+ /**
+ * The project's remote repositories to use for the resolution of either plugins or dependencies.
+ * Standard implementation returns the remote repositories for dependencies.
+ *
+ * @throws EnforcerRuleException
+ */
+ protected List<RemoteRepository> getRemoteRepositories( EnforcerRuleHelper helper ) throws EnforcerRuleException
+ {
+ try
+ {
+ return (List<RemoteRepository>) Objects.requireNonNull( helper.evaluate( "${project.remoteProjectRepositories}" ),
+ "${project.remoteProjectRepositories} is null");
+ }
+ catch ( ExpressionEvaluationException eee )
+ {
+ throw new EnforcerRuleException( "Unable to retrieve project's remote repositories", eee );
+ }
}
protected CharSequence getErrorMessage( Artifact artifact )
@@ -120,43 +122,36 @@
return "Found Banned Dependency: " + artifact.getId() + System.lineSeparator();
}
- private Set<Artifact> getDependenciesToCheck( EnforcerRuleHelper helper,
- ProjectBuildingRequest buildingRequest )
+ private Map<Artifact, DependencyNode> getDependenciesToCheck( EnforcerRuleHelper helper,
+ MavenProject project )
{
- String cacheKey = buildingRequest.getProject().getId() + "_" + searchTransitive;
+ String cacheKey = project.getId() + "_" + searchTransitive;
// check in the cache
- Set<Artifact> dependencies =
- (Set<Artifact>) helper.getCache( cacheKey, () -> getDependenciesToCheck( buildingRequest ) );
+ Map<Artifact, DependencyNode> dependencies =
+ (Map<Artifact, DependencyNode>) helper.getCache( cacheKey, () -> {
+ // TODO: first check deprecated method
+ try {
+ return resolverHelper.getDependencies( project, searchTransitive );
+ } catch (DependencyCollectionException e) {
+ throw new RuntimeException( e );
+ }
+
+ } );
return dependencies;
}
- protected Set<Artifact> getDependenciesToCheck( ProjectBuildingRequest buildingRequest )
+ /**
+ * Rather use
+ * @param project
+ * @return
+ * @deprecated Use {@link #getDependencyMapToCheck(MavenProject)} instead
+ */
+ @Deprecated
+ protected Set<Artifact> getDependenciesToCheck( ProjectBuildingRequest request )
{
- Set<Artifact> dependencies = null;
- try
- {
- DependencyNode node = graphBuilder.buildDependencyGraph( buildingRequest, null );
- if ( searchTransitive )
- {
- dependencies = ArtifactUtils.getAllDescendants( node );
- }
- else if ( node.getChildren() != null )
- {
- dependencies = new HashSet<>();
- for ( DependencyNode depNode : node.getChildren() )
- {
- dependencies.add( depNode.getArtifact() );
- }
- }
- }
- catch ( DependencyGraphBuilderException e )
- {
- // otherwise we need to change the signature of this protected method
- throw new RuntimeException( e );
- }
- return dependencies;
+ return null;
}
/**
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanTransitiveDependencies.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanTransitiveDependencies.java
index e7ef71b..c42617a 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanTransitiveDependencies.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BanTransitiveDependencies.java
@@ -28,14 +28,13 @@
import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugins.enforcer.utils.ArtifactMatcher;
+import org.apache.maven.plugins.enforcer.utils.ResolverHelper;
import org.apache.maven.project.DefaultProjectBuildingRequest;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuildingRequest;
-import org.apache.maven.shared.dependency.graph.DependencyGraphBuilder;
-import org.apache.maven.shared.dependency.graph.DependencyNode;
-import org.apache.maven.shared.dependency.graph.internal.DefaultDependencyGraphBuilder;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.logging.console.ConsoleLogger;
+import org.eclipse.aether.graph.DependencyNode;
/**
* This rule bans all transitive dependencies. There is a configuration option to exclude certain artifacts from being
@@ -161,13 +160,9 @@
try
{
MavenProject project = (MavenProject) helper.evaluate( "${project}" );
- MavenSession session = (MavenSession) helper.evaluate( "${session}" );
-
- ProjectBuildingRequest buildingRequest =
- new DefaultProjectBuildingRequest( session.getProjectBuildingRequest() );
- buildingRequest.setProject( project );
-
- rootNode = createDependencyGraphBuilder().buildDependencyGraph( buildingRequest, null );
+
+ ResolverHelper resolverHelper = new ResolverHelper( helper );
+ rootNode = resolverHelper.collectDependencies( project );
}
catch ( Exception e )
{
@@ -195,18 +190,4 @@
}
- private DependencyGraphBuilder createDependencyGraphBuilder()
- throws ComponentLookupException
- {
- // CHECKSTYLE_OFF: LineLength
- DefaultDependencyGraphBuilder builder =
- (DefaultDependencyGraphBuilder) helper.getContainer().lookup( DependencyGraphBuilder.class.getCanonicalName(),
- "default" );
- // CHECKSTYLE_ON: LineLength
-
- builder.enableLogging( new ConsoleLogger( ConsoleLogger.LEVEL_DISABLED, "DefaultDependencyGraphBuilder" ) );
-
- return builder;
- }
-
}
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BannedPlugins.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BannedPlugins.java
index 9e0a7e8..74d2def 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BannedPlugins.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/BannedPlugins.java
@@ -33,9 +33,9 @@
extends BannedDependencies
{
@Override
- protected Set<Artifact> getDependenciesToCheck( ProjectBuildingRequest buildingRequest )
+ protected Set<Artifact> getDependenciesToCheck( ProjectBuildingRequest request )
{
- return buildingRequest.getProject().getPluginArtifacts();
+ return request.getProject().getPluginArtifacts();
}
@Override
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java
index fdb95e0..eb917b6 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/DependencyConvergence.java
@@ -24,6 +24,7 @@
import java.util.List;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.enforcer.rule.api.EnforcerRule;
@@ -32,14 +33,13 @@
import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.plugins.enforcer.utils.DependencyVersionMap;
-import org.apache.maven.project.DefaultProjectBuildingRequest;
+import org.apache.maven.plugins.enforcer.utils.ResolverHelper;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.ProjectBuildingRequest;
-import org.apache.maven.shared.dependency.graph.DependencyCollectorBuilder;
-import org.apache.maven.shared.dependency.graph.DependencyCollectorBuilderException;
-import org.apache.maven.shared.dependency.graph.DependencyNode;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.eclipse.aether.collection.DependencyCollectionException;
+import org.eclipse.aether.graph.Dependency;
+import org.eclipse.aether.graph.DependencyNode;
/**
* @author <a href="mailto:rex@e-hoffman.org">Rex Hoffman</a>
@@ -74,26 +74,18 @@
try
{
MavenProject project = (MavenProject) helper.evaluate( "${project}" );
- MavenSession session = (MavenSession) helper.evaluate( "${session}" );
- DependencyCollectorBuilder dependencyCollectorBuilder =
- helper.getComponent( DependencyCollectorBuilder.class );
- ArtifactRepository repository = (ArtifactRepository) helper.evaluate( "${localRepository}" );
-
- ProjectBuildingRequest buildingRequest =
- new DefaultProjectBuildingRequest( session.getProjectBuildingRequest() );
- buildingRequest.setProject( project );
- buildingRequest.setLocalRepository( repository );
+ ResolverHelper resolverHelper = new ResolverHelper( helper );
ArtifactFilter filter = ( Artifact a ) -> ( "compile".equalsIgnoreCase( a.getScope () )
|| "runtime".equalsIgnoreCase( a.getScope () ) )
&& !a.isOptional();
- return dependencyCollectorBuilder.collectDependencyGraph( buildingRequest, filter );
+ return resolverHelper.collectDependencies( project );
}
- catch ( ExpressionEvaluationException | ComponentLookupException e )
+ catch ( ExpressionEvaluationException e )
{
throw new EnforcerRuleException( "Unable to lookup a component " + e.getLocalizedMessage(), e );
}
- catch ( DependencyCollectorBuilderException e )
+ catch ( DependencyCollectionException e )
{
throw new EnforcerRuleException( "Could not build dependency tree " + e.getLocalizedMessage(), e );
}
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ArtifactUtils.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ArtifactUtils.java
index b9a04af..234ee3f 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ArtifactUtils.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ArtifactUtils.java
@@ -1,5 +1,7 @@
package org.apache.maven.plugins.enforcer.utils;
+import java.util.Collection;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -22,13 +24,18 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
+import org.apache.maven.RepositoryUtils;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
+import org.apache.maven.model.Dependency;
import org.apache.maven.plugins.enforcer.utils.ArtifactMatcher.Pattern;
-import org.apache.maven.shared.dependency.graph.DependencyNode;
+import org.eclipse.aether.artifact.ArtifactTypeRegistry;
+import org.eclipse.aether.graph.DependencyNode;
/**
*
@@ -126,4 +133,9 @@
return result;
}
+ public static List<org.eclipse.aether.graph.Dependency> toDependencies( List<Dependency> dependencies,
+ ArtifactTypeRegistry types )
+ {
+ return dependencies.stream().map( d-> RepositoryUtils.toDependency( d, types )).collect( Collectors.toList() );
+ }
}
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ConflictingDependencyVersionCollector.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ConflictingDependencyVersionCollector.java
new file mode 100644
index 0000000..e7376ee
--- /dev/null
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ConflictingDependencyVersionCollector.java
@@ -0,0 +1,49 @@
+package org.apache.maven.plugins.enforcer.utils;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.graph.DependencyNode;
+import org.eclipse.aether.graph.DependencyVisitor;
+
+public class ConflictingDependencyVersionCollector implements DependencyVisitor {
+
+ private final Map<Key, List<DependencyNode>> keysToNodes;
+
+ ConflictingDependencyVersionCollector() {
+ keysToNodes = new HashMap<>();
+ }
+ private static final class Key
+ {
+ private final String artifactId;
+ private final String groupId;
+
+ public Key(Artifact artifact) {
+ this(artifact.getArtifactId(), artifact.getGroupId());
+ }
+ public Key(String artifactId, String groupId) {
+ super();
+ this.artifactId = artifactId;
+ this.groupId = groupId;
+ }
+ }
+
+ @Override
+ public boolean visitEnter( DependencyNode node )
+ {
+ Key key = new Key(node.getArtifact());
+ keysToNodes.merge(key, new LinkedList<DependencyNode>(node), nodes -> nodes.add( node ));
+ return false;
+ }
+
+ @Override
+ public boolean visitLeave( DependencyNode node )
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+}
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/DependencyVersionMap.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/DependencyVersionMap.java
index fa65546..8938386 100644
--- a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/DependencyVersionMap.java
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/DependencyVersionMap.java
@@ -33,6 +33,7 @@
* @author Brian Fox
*
*/
+@Deprecated
public class DependencyVersionMap
implements DependencyNodeVisitor
{
diff --git a/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ResolverHelper.java b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ResolverHelper.java
new file mode 100644
index 0000000..3281035
--- /dev/null
+++ b/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/utils/ResolverHelper.java
@@ -0,0 +1,117 @@
+package org.apache.maven.plugins.enforcer.utils;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+import org.apache.maven.RepositoryUtils;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
+import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluationException;
+import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+import org.eclipse.aether.RepositorySystem;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.collection.CollectRequest;
+import org.eclipse.aether.collection.CollectResult;
+import org.eclipse.aether.collection.DependencyCollectionException;
+import org.eclipse.aether.graph.DependencyNode;
+import org.eclipse.aether.repository.RemoteRepository;
+
+public class ResolverHelper {
+
+ private final RepositorySystem repoSystem;
+ private final RepositorySystemSession repoSession;
+ private final List<RemoteRepository> remoteRepositories;
+ private final List<RemoteRepository> remotePluginRepositories;
+
+ public ResolverHelper( EnforcerRuleHelper helper ) throws EnforcerRuleException
+ {
+ try
+ {
+ repoSession =
+ (RepositorySystemSession) Objects.requireNonNull( helper.evaluate( "${repositorySystemSession}" ),
+ "${repositorySystemSession} is null" );
+ }
+ catch ( ExpressionEvaluationException eee )
+ {
+ throw new EnforcerRuleException( "Unable to retrieve repositorySystemSession", eee );
+ }
+ remoteRepositories = getRemoteRepositories( helper );
+ remotePluginRepositories = getRemotePluginRepositories( helper );
+ try
+ {
+ repoSystem = helper.getComponent( RepositorySystem.class );
+ }
+ catch ( ComponentLookupException cle )
+ {
+ throw new EnforcerRuleException( "Unable to lookup component RepositorySystem", cle );
+ }
+ }
+
+ /**
+ * The project's remote repositories to use for the resolution of dependencies.
+ *
+ * @throws EnforcerRuleException
+ */
+ private List<RemoteRepository> getRemoteRepositories( EnforcerRuleHelper helper ) throws EnforcerRuleException
+ {
+ try
+ {
+ return (List<RemoteRepository>) Objects.requireNonNull( helper.evaluate( "${project.remoteProjectRepositories}" ),
+ "${project.remoteProjectRepositories} is null");
+ }
+ catch ( ExpressionEvaluationException eee )
+ {
+ throw new EnforcerRuleException( "Unable to retrieve project's remote repositories", eee );
+ }
+ }
+
+ /**
+ * The project's remote repositories to use for the resolution of plugins.
+ * @throws EnforcerRuleException
+ */
+ private List<RemoteRepository> getRemotePluginRepositories( EnforcerRuleHelper helper ) throws EnforcerRuleException
+ {
+ try
+ {
+ return (List<RemoteRepository>) Objects.requireNonNull( helper.evaluate( "${project.remotePluginRepositories}" ),
+ "${project.remotePluginRepositories} is null");
+ }
+ catch ( ExpressionEvaluationException eee )
+ {
+ throw new EnforcerRuleException( "Unable to retrieve project's remote plugin repositories", eee );
+ }
+ }
+
+ public Map<Artifact, DependencyNode> getDependencies( MavenProject project, boolean searchTransitive ) throws DependencyCollectionException
+ {
+ Map<Artifact, DependencyNode> dependencies = null;
+ DependencyNode node = collectDependencies(project);
+ if ( searchTransitive )
+ {
+ // TODO:!
+ dependencies = null; // ArtifactUtils.getAllDescendants( node );
+ }
+ else if ( node.getChildren() != null )
+ {
+ dependencies = new HashMap<>();
+ for ( DependencyNode depNode : node.getChildren() )
+ {
+ dependencies.putIfAbsent( RepositoryUtils.toArtifact( depNode.getArtifact() ), depNode );
+ }
+ }
+ return dependencies;
+ }
+
+ public DependencyNode collectDependencies(MavenProject project) throws DependencyCollectionException {
+ List<org.eclipse.aether.graph.Dependency> resolverDeps = ArtifactUtils.toDependencies( project.getDependencies(), repoSession.getArtifactTypeRegistry() );
+ List<org.eclipse.aether.graph.Dependency> resolvedManagedDeps = ArtifactUtils.toDependencies( project.getDependencyManagement().getDependencies(), repoSession.getArtifactTypeRegistry() );
+ CollectRequest collectRequest = new CollectRequest( resolverDeps, resolvedManagedDeps, remoteRepositories );
+ CollectResult collectResult = repoSystem.collectDependencies( repoSession, collectRequest );
+ DependencyNode node = collectResult.getRoot();
+ return node;
+ }
+}
diff --git a/pom.xml b/pom.xml
index 4f06e61..b5f6c9e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -171,11 +171,6 @@
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
- <artifactId>maven-dependency-tree</artifactId>
- <version>3.1.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-utils</artifactId>
<version>3.3.4</version>
</dependency>