in src/main/java/org/apache/maven/buildcache/checksum/MavenProjectInput.java [349:411]
private SortedSet<Path> getInputFiles() {
long start = System.currentTimeMillis();
HashSet<WalkKey> visitedDirs = new HashSet<>();
ArrayList<Path> collectedFiles = new ArrayList<>();
org.apache.maven.model.Build build = project.getBuild();
final boolean recursive = true;
startWalk(Paths.get(build.getSourceDirectory()), dirGlob, recursive, collectedFiles, visitedDirs);
for (Resource resource : build.getResources()) {
startWalk(Paths.get(resource.getDirectory()), dirGlob, recursive, collectedFiles, visitedDirs);
}
startWalk(Paths.get(build.getTestSourceDirectory()), dirGlob, recursive, collectedFiles, visitedDirs);
for (Resource testResource : build.getTestResources()) {
startWalk(Paths.get(testResource.getDirectory()), dirGlob, recursive, collectedFiles, visitedDirs);
}
Properties properties = project.getProperties();
for (String name : properties.stringPropertyNames()) {
if (name.startsWith(CACHE_INPUT_NAME)) {
String path = properties.getProperty(name);
startWalk(Paths.get(path), dirGlob, recursive, collectedFiles, visitedDirs);
}
}
List<Include> includes = config.getGlobalIncludePaths();
for (Include include : includes) {
final String path = include.getValue();
final String glob = defaultIfEmpty(include.getGlob(), dirGlob);
startWalk(Paths.get(path), glob, include.isRecursive(), collectedFiles, visitedDirs);
}
long walkKnownPathsFinished = System.currentTimeMillis() - start;
LOGGER.info(
"Scanning plugins configurations to find input files. Probing is {}",
processPlugins
? "enabled, values will be checked for presence in file system"
: "disabled, only tags with attribute " + CACHE_INPUT_NAME + "=\"true\" will be added");
if (processPlugins) {
collectFromPlugins(collectedFiles, visitedDirs);
} else {
LOGGER.info("Skipping check plugins scan (probing is disabled by config)");
}
long pluginsFinished = System.currentTimeMillis() - start - walkKnownPathsFinished;
TreeSet<Path> sorted = new TreeSet<>(fileComparator);
for (Path collectedFile : collectedFiles) {
sorted.add(collectedFile.normalize().toAbsolutePath());
}
LOGGER.info(
"Found {} input files. Project dir processing: {}, plugins: {} millis",
sorted.size(),
walkKnownPathsFinished,
pluginsFinished);
LOGGER.debug("Src input: {}", sorted);
return sorted;
}