in src/main/java/org/apache/maven/plugins/invoker/AbstractInvokerMojo.java [1166:1189]
private void copyDirectoryStructure(File sourceDir, File destDir) throws IOException {
DirectoryScanner scanner = new DirectoryScanner();
scanner.setBasedir(sourceDir);
if (!cloneAllFiles) {
scanner.addDefaultExcludes();
}
scanner.scan();
/*
* NOTE: Make sure the destination directory is always there (even if empty) to support POM-less ITs.
*/
destDir.mkdirs();
// Create all the directories, including any symlinks present in source
FileUtils.mkDirs(sourceDir, scanner.getIncludedDirectories(), destDir);
for (String includedFile : scanner.getIncludedFiles()) {
File sourceFile = new File(sourceDir, includedFile);
File destFile = new File(destDir, includedFile);
FileUtils.copyFile(sourceFile, destFile);
// ensure clone project must be writable for additional changes
destFile.setWritable(true);
}
}