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