private void copyDirectoryStructure()

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