private List scanProjectsDirectory()

in src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java [2187:2223]


    private List<BuildJob> scanProjectsDirectory(List<String> includes, List<String> excludes) throws IOException {
        if (!projectsDirectory.isDirectory()) {
            return Collections.emptyList();
        }

        DirectoryScanner scanner = new DirectoryScanner();
        scanner.setBasedir(projectsDirectory.getCanonicalFile());
        scanner.setFollowSymlinks(false);
        if (includes != null) {
            scanner.setIncludes(includes.toArray(new String[0]));
        }
        if (excludes != null) {
            if ((includes == null || includes.isEmpty()) && !excludes.isEmpty()) {
                scanner.setIncludes(new String[] {"*"});
            }
            scanner.setExcludes(excludes.toArray(new String[0]));
        }
        scanner.addDefaultExcludes();
        scanner.scan();

        Map<String, BuildJob> matches = new LinkedHashMap<>();

        for (String includedFile : scanner.getIncludedFiles()) {
            matches.put(includedFile, new BuildJob(includedFile));
        }

        for (String includedDir : scanner.getIncludedDirectories()) {
            String includedFile = includedDir + File.separatorChar + "pom.xml";
            if (new File(scanner.getBasedir(), includedFile).isFile()) {
                matches.put(includedFile, new BuildJob(includedFile));
            } else {
                matches.put(includedDir, new BuildJob(includedDir));
            }
        }

        return new ArrayList<>(matches.values());
    }