void addFileSet()

in src/main/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTask.java [85:157]


    void addFileSet(
            final FileSet fileSet,
            final Archiver archiver,
            final AssemblerConfigurationSource configSource,
            final File archiveBaseDir)
            throws AssemblyFormattingException, ArchiveCreationException {
        if (project == null) {
            project = configSource.getProject();
        }

        final File basedir = project.getBasedir();

        String destDirectory = fileSet.getOutputDirectory();

        if (destDirectory == null) {
            destDirectory = fileSet.getDirectory();

            AssemblyFormatUtils.warnForPlatformSpecifics(LOGGER, destDirectory);
        }

        destDirectory = AssemblyFormatUtils.getOutputDirectory(
                destDirectory,
                configSource.getFinalName(),
                configSource,
                AssemblyFormatUtils.moduleProjectInterpolator(moduleProject),
                AssemblyFormatUtils.artifactProjectInterpolator(project));

        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("FileSet[" + destDirectory + "]" + " dir perms: "
                    + Integer.toString(archiver.getOverrideDirectoryMode(), 8) + " file perms: "
                    + Integer.toString(archiver.getOverrideFileMode(), 8)
                    + (fileSet.getLineEnding() == null ? "" : " lineEndings: " + fileSet.getLineEnding()));
        }

        LOGGER.debug("The archive base directory is '" + archiveBaseDir + "'");

        File fileSetDir = getFileSetDirectory(fileSet, basedir, archiveBaseDir);

        if (fileSetDir.exists()) {
            InputStreamTransformer fileSetTransformers = ReaderFormatter.getFileSetTransformers(
                    configSource,
                    fileSet.isFiltered(),
                    new HashSet<>(fileSet.getNonFilteredFileExtensions()),
                    fileSet.getLineEnding());
            if (fileSetTransformers == null) {
                LOGGER.debug("NOT reformatting any files in " + fileSetDir);
            }

            if (fileSetDir.getPath().equals(File.separator)) {
                throw new AssemblyFormattingException(
                        "Your assembly descriptor specifies a directory of " + File.separator
                                + ", which is your *entire* file system.\nThese are not the files you are looking for");
            }
            final AddDirectoryTask task = new AddDirectoryTask(fileSetDir, fileSetTransformers);

            final int dirMode = TypeConversionUtils.modeToInt(fileSet.getDirectoryMode(), LOGGER);
            if (dirMode != -1) {
                task.setDirectoryMode(dirMode);
            }

            final int fileMode = TypeConversionUtils.modeToInt(fileSet.getFileMode(), LOGGER);
            if (fileMode != -1) {
                task.setFileMode(fileMode);
            }

            task.setUseDefaultExcludes(fileSet.isUseDefaultExcludes());
            task.setExcludes(fileSet.getExcludes());
            task.setIncludes(fileSet.getIncludes());
            task.setOutputDirectory(destDirectory);

            task.execute(archiver);
        }
    }