in src/main/java/org/apache/maven/shared/dependency/graph/traversal/BuildingDependencyNodeVisitor.java [79:101]
public boolean visit(DependencyNode node) {
// clone the node
DefaultDependencyNode newNode = new DefaultDependencyNode(
parentNodes.isEmpty() ? null : parentNodes.peek(),
node.getArtifact(),
node.getPremanagedVersion(),
node.getPremanagedScope(),
node.getVersionConstraint(),
node.getOptional(),
node.getExclusions());
newNode.setChildren(new ArrayList<>());
if (parentNodes.empty()) {
rootNode = newNode;
} else {
DependencyNode parentNode = parentNodes.peek();
parentNode.getChildren().add(newNode);
}
parentNodes.push(newNode);
return true;
}