private List getReportsDirectories()

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;
    }