private void addNonArchiveDependency()

in src/main/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTask.java [317:367]


    private void addNonArchiveDependency(
            final Artifact depArtifact,
            final MavenProject depProject,
            final DependencySet dependencySet,
            final Archiver archiver,
            final AssemblerConfigurationSource configSource)
            throws AssemblyFormattingException, ArchiveCreationException {
        final File source = depArtifact.getFile();

        String outputDirectory = dependencySet.getOutputDirectory();

        FixedStringSearchInterpolator moduleProjectInterpolator =
                AssemblyFormatUtils.moduleProjectInterpolator(moduleProject);
        FixedStringSearchInterpolator artifactProjectInterpolator =
                AssemblyFormatUtils.artifactProjectInterpolator(depProject);
        outputDirectory = AssemblyFormatUtils.getOutputDirectory(
                outputDirectory,
                depProject.getBuild().getFinalName(),
                configSource,
                moduleProjectInterpolator,
                artifactProjectInterpolator);

        final String destName = AssemblyFormatUtils.evaluateFileNameMapping(
                dependencySet.getOutputFileNameMapping(),
                depArtifact,
                configSource.getProject(),
                moduleArtifact,
                configSource,
                moduleProjectInterpolator,
                artifactProjectInterpolator);

        String target;

        // omit the last char if ends with / or \\
        if (outputDirectory.endsWith("/") || outputDirectory.endsWith("\\")) {
            target = outputDirectory + destName;
        } else {
            target = outputDirectory + "/" + destName;
        }

        try {
            final int mode = TypeConversionUtils.modeToInt(dependencySet.getFileMode(), LOGGER);
            if (mode > -1) {
                archiver.addFile(source, target, mode);
            } else {
                archiver.addFile(source, target);
            }
        } catch (final ArchiverException e) {
            throw new ArchiveCreationException("Error adding file to archive: " + e.getMessage(), e);
        }
    }