in src/main/java/org/apache/maven/plugin/resources/remote/AbstractProcessRemoteResourcesMojo.java [509:575]
protected List<MavenProject> getProjects() {
List<MavenProject> projects = new ArrayList<>();
// add filters in well known order, least specific to most specific
FilterArtifacts filter = new FilterArtifacts();
Set<Artifact> artifacts = new LinkedHashSet<>(getAllDependencies());
if (this.excludeTransitive) {
filter.addFilter(new ProjectTransitivityFilter(getDirectDependencies(), true));
}
filter.addFilter(new ScopeFilter(this.includeScope, this.excludeScope));
filter.addFilter(new GroupIdFilter(this.includeGroupIds, this.excludeGroupIds));
filter.addFilter(new ArtifactIdFilter(this.includeArtifactIds, this.excludeArtifactIds));
// perform filtering
try {
artifacts = filter.filter(artifacts);
} catch (ArtifactFilterException e) {
throw new IllegalStateException(e.getMessage(), e);
}
getLog().debug("PROJECTS: " + artifacts);
for (Artifact artifact : artifacts) {
if (artifact.isSnapshot()) {
artifact.setVersion(artifact.getBaseVersion());
}
getLog().debug("Building project for " + artifact);
MavenProject p;
try {
ProjectBuildingRequest req = new DefaultProjectBuildingRequest()
.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL)
.setProcessPlugins(false)
.setRepositorySession(mavenSession.getRepositorySession())
.setSystemProperties(mavenSession.getSystemProperties())
.setUserProperties(mavenSession.getUserProperties())
.setLocalRepository(mavenSession.getLocalRepository())
.setRemoteRepositories(project.getRemoteArtifactRepositories());
ProjectBuildingResult res = projectBuilder.build(artifact, req);
p = res.getProject();
} catch (ProjectBuildingException e) {
getLog().warn("Invalid project model for artifact [" + artifact.getGroupId() + ":"
+ artifact.getArtifactId() + ":" + artifact.getVersion() + "]. "
+ "It will be ignored by the remote resources Mojo.");
continue;
}
String supplementKey = generateSupplementMapKey(
p.getModel().getGroupId(), p.getModel().getArtifactId());
if (supplementModels.containsKey(supplementKey)) {
Model mergedModel = mergeModels(p.getModel(), supplementModels.get(supplementKey));
MavenProject mergedProject = new MavenProject(mergedModel);
projects.add(mergedProject);
mergedProject.setArtifact(artifact);
mergedProject.setVersion(artifact.getVersion());
getLog().debug("Adding project with groupId [" + mergedProject.getGroupId() + "] (supplemented)");
} else {
projects.add(p);
getLog().debug("Adding project with groupId [" + p.getGroupId() + "]");
}
}
projects.sort(new ProjectComparator());
return projects;
}