in src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java [123:164]
private DependencyNode buildDependencyNode(
DependencyNode parent,
org.eclipse.aether.graph.DependencyNode node,
Artifact artifact,
ArtifactFilter filter) {
String premanagedVersion = DependencyManagerUtils.getPremanagedVersion(node);
String premanagedScope = DependencyManagerUtils.getPremanagedScope(node);
List<org.apache.maven.model.Exclusion> exclusions = null;
Boolean optional = artifact.isOptional();
if (node.getDependency() != null) {
exclusions = new ArrayList<>(node.getDependency().getExclusions().size());
for (Exclusion exclusion : node.getDependency().getExclusions()) {
org.apache.maven.model.Exclusion modelExclusion = new org.apache.maven.model.Exclusion();
modelExclusion.setGroupId(exclusion.getGroupId());
modelExclusion.setArtifactId(exclusion.getArtifactId());
exclusions.add(modelExclusion);
}
}
DefaultDependencyNode current = new DefaultDependencyNode(
parent,
artifact,
premanagedVersion,
premanagedScope,
getVersionSelectedFromRange(node.getVersionConstraint()),
optional,
exclusions);
List<DependencyNode> nodes = new ArrayList<>(node.getChildren().size());
for (org.eclipse.aether.graph.DependencyNode child : node.getChildren()) {
Artifact childArtifact = getDependencyArtifact(child.getDependency());
if ((filter == null) || filter.include(childArtifact)) {
nodes.add(buildDependencyNode(current, child, childArtifact, filter));
}
}
current.setChildren(Collections.unmodifiableList(nodes));
return current;
}