in src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java [124:195]
public File createArchive(
final Assembly assembly,
final String fullName,
final String format,
final AssemblerConfigurationSource configSource,
boolean recompressZippedFiles,
String mergeManifestMode,
FileTime outputTimestamp)
throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException {
validate(assembly);
String filename = fullName;
if (!configSource.isIgnoreDirFormatExtensions() || !format.startsWith("dir")) {
filename += "." + format;
}
AssemblyFileUtils.verifyTempDirectoryAvailability(configSource.getTemporaryRootDirectory());
final File outputDirectory = configSource.getOutputDirectory();
final File destFile = new File(outputDirectory, filename);
try {
final String finalName = configSource.getFinalName();
final String specifiedBasedir = assembly.getBaseDirectory();
String basedir = finalName;
if (specifiedBasedir != null) {
basedir = AssemblyFormatUtils.getOutputDirectory(
specifiedBasedir,
finalName,
configSource,
AssemblyFormatUtils.moduleProjectInterpolator(configSource.getProject()),
AssemblyFormatUtils.artifactProjectInterpolator(null));
}
final List<ContainerDescriptorHandler> containerHandlers =
selectContainerDescriptorHandlers(assembly.getContainerDescriptorHandlers(), configSource);
final Archiver archiver = createArchiver(
format,
assembly.isIncludeBaseDirectory(),
basedir,
configSource,
containerHandlers,
recompressZippedFiles,
mergeManifestMode,
outputTimestamp);
archiver.setDestFile(destFile);
for (AssemblyArchiverPhase phase : sortedPhases()) {
phase.execute(assembly, archiver, configSource);
}
archiver.createArchive();
} catch (final ArchiverException | IOException e) {
throw new ArchiveCreationException(
"Error creating assembly archive " + assembly.getId() + ": " + e.getMessage(), e);
} catch (final NoSuchArchiverException e) {
throw new ArchiveCreationException(
"Unable to obtain archiver for extension '" + format + "', for assembly: '" + assembly.getId()
+ "'",
e);
} catch (final DependencyResolutionException e) {
throw new ArchiveCreationException(
"Unable to resolve dependencies for assembly '" + assembly.getId() + "'", e);
}
return destFile;
}