in maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/DefaultMojoAnnotationsScanner.java [196:222]
protected Map<String, MojoAnnotatedClass> scanDirectory(
File classDirectory, List<String> includePatterns, Artifact artifact, boolean excludeMojo)
throws IOException, ExtractionException {
Map<String, MojoAnnotatedClass> mojoAnnotatedClasses = new HashMap<>();
DirectoryScanner scanner = new DirectoryScanner();
scanner.setBasedir(classDirectory);
scanner.addDefaultExcludes();
if (includePatterns != null) {
scanner.setIncludes(includePatterns.toArray(new String[includePatterns.size()]));
}
scanner.scan();
String[] classFiles = scanner.getIncludedFiles();
String classDirname = classDirectory.getAbsolutePath();
for (String classFile : classFiles) {
if (!SCANNABLE_CLASS.matcher(classFile).matches()) {
continue;
}
try (InputStream is = //
new BufferedInputStream(new FileInputStream(new File(classDirectory, classFile)))) {
analyzeClassStream(mojoAnnotatedClasses, is, artifact, excludeMojo, classDirname, classFile);
}
}
return mojoAnnotatedClasses;
}