in src/main/java/org/apache/maven/plugins/dependency/ListRepositoriesMojo.java [75:132]
protected void doExecute() throws MojoExecutionException {
CollectRequest request = new CollectRequest();
request.setRepositories(getProject().getRemoteProjectRepositories());
request.setRootArtifact(RepositoryUtils.toArtifact(getProject().getArtifact()));
ArtifactTypeRegistry artifactTypeRegistry =
session.getRepositorySession().getArtifactTypeRegistry();
request.setDependencies(getProject().getDependencies().stream()
.map(d -> RepositoryUtils.toDependency(d, artifactTypeRegistry))
.collect(Collectors.toList()));
request.setManagedDependencies(Optional.ofNullable(getProject().getDependencyManagement())
.map(DependencyManagement::getDependencies)
.orElseGet(Collections::emptyList)
.stream()
.map(d -> RepositoryUtils.toDependency(d, artifactTypeRegistry))
.collect(Collectors.toList()));
try {
CollectResult collectResult = repositorySystem.collectDependencies(session.getRepositorySession(), request);
Set<RemoteRepository> repositories = new HashSet<>();
collectResult.getRoot().accept(new TreeDependencyVisitor(new DependencyVisitor() {
@Override
public boolean visitEnter(DependencyNode node) {
repositories.addAll(node.getRepositories());
return true;
}
@Override
public boolean visitLeave(DependencyNode node) {
return true;
}
}));
if (repositories.isEmpty()) {
getLog().info("No remote repository is used by this build." + System.lineSeparator());
return;
}
StringBuilder message = new StringBuilder();
Map<Boolean, List<RemoteRepository>> repoGroupByMirrors = repositories.stream()
.collect(Collectors.groupingBy(
repo -> repo.getMirroredRepositories().isEmpty()));
prepareRemoteRepositoriesList(
message, repoGroupByMirrors.getOrDefault(Boolean.TRUE, Collections.emptyList()));
prepareRemoteMirrorRepositoriesList(
message, repoGroupByMirrors.getOrDefault(Boolean.FALSE, Collections.emptyList()));
getLog().info(message);
} catch (DependencyCollectionException e) {
throw new MojoExecutionException(e.getMessage(), e);
}
}