in maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/AbstractSurefireReportMojo.java [188:241]
private List<File> getReportsDirectories() {
if (resolvedReportsDirectories != null) {
return resolvedReportsDirectories;
}
resolvedReportsDirectories = new ArrayList<>();
if (this.reportsDirectories != null) {
addAll(resolvedReportsDirectories, this.reportsDirectories);
}
//noinspection deprecation
if (reportsDirectory != null) {
//noinspection deprecation
resolvedReportsDirectories.add(reportsDirectory);
}
if (aggregate) {
if (!project.isExecutionRoot()) {
return null;
}
if (this.reportsDirectories == null) {
if (reactorProjects.size() > 1) {
for (MavenProject mavenProject : getProjectsWithoutRoot()) {
resolvedReportsDirectories.add(getSurefireReportsDirectory(mavenProject));
}
} else {
resolvedReportsDirectories.add(getSurefireReportsDirectory(project));
}
} else {
// Multiple report directories are configured.
// Let's see if those directories exist in each sub-module to fix SUREFIRE-570
String parentBaseDir = getProject().getBasedir().getAbsolutePath();
for (MavenProject subProject : getProjectsWithoutRoot()) {
String moduleBaseDir = subProject.getBasedir().getAbsolutePath();
for (File reportsDirectory1 : this.reportsDirectories) {
String reportDir = reportsDirectory1.getPath();
if (reportDir.startsWith(parentBaseDir)) {
reportDir = reportDir.substring(parentBaseDir.length());
}
File reportsDirectory = new File(moduleBaseDir, reportDir);
if (reportsDirectory.exists() && reportsDirectory.isDirectory()) {
getConsoleLogger().debug("Adding report dir: " + moduleBaseDir + reportDir);
resolvedReportsDirectories.add(reportsDirectory);
}
}
}
}
} else {
if (resolvedReportsDirectories.isEmpty()) {
resolvedReportsDirectories.add(getSurefireReportsDirectory(project));
}
}
return resolvedReportsDirectories;
}