in enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/dependency/ResolverUtil.java [113:155]
private DependencyNode resolveTransitiveDependencies(
boolean verbose, boolean excludeOptional, List<String> excludedScopes) throws EnforcerRuleException {
try {
RepositorySystemSession repositorySystemSession = session.getRepositorySession();
if (verbose) {
DefaultRepositorySystemSession defaultRepositorySystemSession =
new DefaultRepositorySystemSession(repositorySystemSession);
defaultRepositorySystemSession.setConfigProperty(ConflictResolver.CONFIG_PROP_VERBOSE, true);
defaultRepositorySystemSession.setConfigProperty(DependencyManagerUtils.CONFIG_PROP_VERBOSE, true);
repositorySystemSession = defaultRepositorySystemSession;
}
MavenProject project = session.getCurrentProject();
ArtifactTypeRegistry artifactTypeRegistry =
session.getRepositorySession().getArtifactTypeRegistry();
List<Dependency> dependencies = project.getDependencies().stream()
.filter(d -> !(excludeOptional && d.isOptional()))
.filter(d -> !excludedScopes.contains(d.getScope()))
.map(d -> RepositoryUtils.toDependency(d, artifactTypeRegistry))
.collect(Collectors.toList());
List<Dependency> managedDependencies = ofNullable(project.getDependencyManagement())
.map(DependencyManagement::getDependencies)
.map(list -> list.stream()
.map(d -> RepositoryUtils.toDependency(d, artifactTypeRegistry))
.collect(Collectors.toList()))
.orElse(null);
CollectRequest collectRequest =
new CollectRequest(dependencies, managedDependencies, project.getRemoteProjectRepositories());
collectRequest.setRootArtifact(RepositoryUtils.toArtifact(project.getArtifact()));
return repositorySystem
.collectDependencies(repositorySystemSession, collectRequest)
.getRoot();
} catch (DependencyCollectionException e) {
throw new EnforcerRuleException("Could not build dependency tree " + e.getLocalizedMessage(), e);
}
}