in src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyCollectorBuilder.java [74:126]
public DependencyNode collectDependencyGraph(DependencyCollectorRequest dependencyCollectorRequest)
throws DependencyCollectorBuilderException {
DefaultRepositorySystemSession session = null;
try {
ProjectBuildingRequest buildingRequest = dependencyCollectorRequest.getBuildingRequest();
MavenProject project = buildingRequest.getProject();
Artifact projectArtifact = project.getArtifact();
List<ArtifactRepository> remoteArtifactRepositories = project.getRemoteArtifactRepositories();
RepositorySystemSession repositorySession = buildingRequest.getRepositorySession();
session = new DefaultRepositorySystemSession(repositorySession);
session.setDependencyGraphTransformer(dependencyCollectorRequest.getDependencyGraphTransformer());
session.setDependencySelector(dependencyCollectorRequest.getDependencySelector());
for (Map.Entry<String, Object> entry :
dependencyCollectorRequest.getConfigProperties().entrySet()) {
session.setConfigProperty(entry.getKey(), entry.getValue());
}
org.eclipse.aether.artifact.Artifact aetherArtifact = RepositoryUtils.toArtifact(projectArtifact);
List<org.eclipse.aether.repository.RemoteRepository> aetherRepos =
RepositoryUtils.toRepos(remoteArtifactRepositories);
CollectRequest collectRequest = new CollectRequest();
collectRequest.setRootArtifact(aetherArtifact);
collectRequest.setRepositories(aetherRepos);
org.eclipse.aether.artifact.ArtifactTypeRegistry stereotypes = session.getArtifactTypeRegistry();
collectDependencyList(collectRequest, project, stereotypes);
collectManagedDependencyList(collectRequest, project, stereotypes);
CollectResult collectResult = repositorySystem.collectDependencies(session, collectRequest);
org.eclipse.aether.graph.DependencyNode rootNode = collectResult.getRoot();
if (LOGGER.isDebugEnabled()) {
logTree(rootNode);
}
return buildDependencyNode(null, rootNode, projectArtifact, dependencyCollectorRequest.getFilter());
} catch (DependencyCollectionException e) {
throw new DependencyCollectorBuilderException("Could not collect dependencies: " + e.getResult(), e);
} finally {
if (session != null) {
session.setReadOnly();
}
}
}