in src/main/java/org/apache/maven/plugins/assembly/archive/task/AddArtifactTask.java [165:211]
private void unpacked(Archiver archiver, String destDirectory) throws ArchiveCreationException {
String outputLocation = destDirectory;
if ((outputLocation.length() > 0) && !outputLocation.endsWith("/")) {
outputLocation += "/";
}
String[] includesArray = TypeConversionUtils.toStringArray(includes);
if (includesArray == null) {
includesArray = DEFAULT_INCLUDES_ARRAY;
}
final String[] excludesArray = TypeConversionUtils.toStringArray(excludes);
try {
final File artifactFile = artifact.getFile();
if (artifactFile == null) {
LOGGER.warn("Skipping artifact: " + artifact.getId()
+ "; it does not have an associated file or directory.");
} else if (artifactFile.isDirectory()) {
LOGGER.debug("Adding artifact directory contents for: " + artifact + " to: " + outputLocation);
DefaultFileSet fs = DefaultFileSet.fileSet(artifactFile);
fs.setIncludes(includesArray);
fs.setExcludes(excludesArray);
fs.setPrefix(outputLocation);
fs.setStreamTransformer(transformer);
fs.setUsingDefaultExcludes(usingDefaultExcludes);
archiver.addFileSet(fs);
} else {
LOGGER.debug("Unpacking artifact contents for: " + artifact + " to: " + outputLocation);
LOGGER.debug("includes:\n" + StringUtils.join(includesArray, "\n") + "\n");
LOGGER.debug("excludes:\n" + (excludesArray == null ? "none" : StringUtils.join(excludesArray, "\n"))
+ "\n");
DefaultArchivedFileSet afs = DefaultArchivedFileSet.archivedFileSet(artifactFile);
afs.setIncludes(includesArray);
afs.setExcludes(excludesArray);
afs.setPrefix(outputLocation);
afs.setStreamTransformer(transformer);
afs.setUsingDefaultExcludes(usingDefaultExcludes);
archiver.addArchivedFileSet(afs, encoding);
}
} catch (final ArchiverException e) {
throw new ArchiveCreationException(
"Error adding file-set for '" + artifact.getId() + "' to archive: " + e.getMessage(), e);
}
}