in src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java [266:352]
protected Archiver createArchiver(
final String format,
final boolean includeBaseDir,
final String finalName,
final AssemblerConfigurationSource configSource,
final List<ContainerDescriptorHandler> containerHandlers,
boolean recompressZippedFiles,
String mergeManifestMode,
FileTime outputTimestamp)
throws NoSuchArchiverException {
Archiver archiver;
// one missing alias in plexus-archiver
if ("tzst".equals(format)) {
archiver = createTarZstArchiver();
} else {
archiver = archiverManager.getArchiver(format);
}
if (archiver instanceof TarArchiver) {
((TarArchiver) archiver).setLongfile(TarLongFileMode.valueOf(configSource.getTarLongFileMode()));
}
if (archiver instanceof WarArchiver) {
((WarArchiver) archiver).setExpectWebXml(false);
}
if (archiver instanceof AbstractZipArchiver) {
((AbstractZipArchiver) archiver).setRecompressAddedZips(recompressZippedFiles);
}
final List<FileSelector> extraSelectors = new ArrayList<>();
final List<ArchiveFinalizer> extraFinalizers = new ArrayList<>();
if (archiver instanceof JarArchiver) {
configureJarArchiver((JarArchiver) archiver, mergeManifestMode);
extraSelectors.add(new JarSecurityFileSelector());
extraFinalizers.add(new ManifestCreationFinalizer(
configSource.getMavenSession(),
configSource.getProject(),
configSource.getJarArchiveConfiguration()));
}
if (configSource.getArchiverConfig() != null) {
configureArchiver(archiver, configSource);
}
String prefix = "";
if (includeBaseDir) {
prefix = finalName;
}
archiver = new AssemblyProxyArchiver(
prefix,
archiver,
containerHandlers,
extraSelectors,
extraFinalizers,
configSource.getWorkingDirectory());
if (configSource.isDryRun()) {
archiver = new DryRunArchiver(archiver, LOGGER);
}
archiver.setIgnorePermissions(configSource.isIgnorePermissions());
archiver.setForced(!configSource.isUpdateOnly());
// configure for Reproducible Builds based on outputTimestamp value
if (outputTimestamp != null) {
archiver.configureReproducibleBuild(outputTimestamp);
}
if (configSource.getOverrideUid() != null) {
archiver.setOverrideUid(configSource.getOverrideUid());
}
if (StringUtils.isNotBlank(configSource.getOverrideUserName())) {
archiver.setOverrideUserName(StringUtils.trim(configSource.getOverrideUserName()));
}
if (configSource.getOverrideGid() != null) {
archiver.setOverrideGid(configSource.getOverrideGid());
}
if (StringUtils.isNotBlank(configSource.getOverrideGroupName())) {
archiver.setOverrideGroupName(StringUtils.trim(configSource.getOverrideGroupName()));
}
return archiver;
}