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