Class DefaultAssemblyArchiver
- java.lang.Object
-
- org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiver
-
- All Implemented Interfaces:
AssemblyArchiver
@Named public class DefaultAssemblyArchiver extends java.lang.Object implements AssemblyArchiver
Controller component designed to organize the many activities involved in creating an assembly archive. This includes locating and configuringArchiverinstances, executing multiple.archive.phase.AssemblyArchiverPhaseinstances to interpret the various sections of the assembly descriptor and determine which files to add, and other associated activities.
-
-
Field Summary
Fields Modifier and Type Field Description private org.codehaus.plexus.archiver.manager.ArchiverManagerarchiverManagerprivate java.util.List<AssemblyArchiverPhase>assemblyPhasesprivate org.codehaus.plexus.PlexusContainercontainerprivate java.util.Map<java.lang.String,ContainerDescriptorHandler>containerDescriptorHandlersprivate static org.slf4j.LoggerLOGGER
-
Constructor Summary
Constructors Constructor Description DefaultAssemblyArchiver(org.codehaus.plexus.archiver.manager.ArchiverManager archiverManager, java.util.List<AssemblyArchiverPhase> assemblyPhases, java.util.Map<java.lang.String,ContainerDescriptorHandler> containerDescriptorHandlers, org.codehaus.plexus.PlexusContainer container)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidconfigureArchiver(org.codehaus.plexus.archiver.Archiver archiver, AssemblerConfigurationSource configSource)private voidconfigureComponent(java.lang.Object component, org.codehaus.plexus.util.xml.Xpp3Dom config, AssemblerConfigurationSource configSource)private voidconfigureContainerDescriptorHandler(ContainerDescriptorHandler handler, org.codehaus.plexus.util.xml.Xpp3Dom config, AssemblerConfigurationSource configSource)private voidconfigureJarArchiver(org.codehaus.plexus.archiver.jar.JarArchiver archiver, java.lang.String mergeManifestMode)java.io.FilecreateArchive(Assembly assembly, java.lang.String fullName, java.lang.String format, AssemblerConfigurationSource configSource, boolean recompressZippedFiles, java.lang.String mergeManifestMode, java.nio.file.attribute.FileTime outputTimestamp)Create the assembly archive.protected org.codehaus.plexus.archiver.ArchivercreateArchiver(java.lang.String format, boolean includeBaseDir, java.lang.String finalName, AssemblerConfigurationSource configSource, java.util.List<ContainerDescriptorHandler> containerHandlers, boolean recompressZippedFiles, java.lang.String mergeManifestMode, java.nio.file.attribute.FileTime outputTimestamp)Creates the necessary archiver to build the distribution file.protected org.codehaus.plexus.archiver.ArchivercreateTarZstArchiver()private java.lang.Object[]getContainerRealm()private java.util.List<ContainerDescriptorHandler>selectContainerDescriptorHandlers(java.util.List<ContainerDescriptorHandlerConfig> requestedContainerDescriptorHandlers, AssemblerConfigurationSource configSource)private java.util.List<AssemblyArchiverPhase>sortedPhases()private voidvalidate(Assembly assembly)
-
-
-
Field Detail
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
archiverManager
private final org.codehaus.plexus.archiver.manager.ArchiverManager archiverManager
-
assemblyPhases
private final java.util.List<AssemblyArchiverPhase> assemblyPhases
-
containerDescriptorHandlers
private final java.util.Map<java.lang.String,ContainerDescriptorHandler> containerDescriptorHandlers
-
container
private final org.codehaus.plexus.PlexusContainer container
-
-
Constructor Detail
-
DefaultAssemblyArchiver
@Inject public DefaultAssemblyArchiver(org.codehaus.plexus.archiver.manager.ArchiverManager archiverManager, java.util.List<AssemblyArchiverPhase> assemblyPhases, java.util.Map<java.lang.String,ContainerDescriptorHandler> containerDescriptorHandlers, org.codehaus.plexus.PlexusContainer container)
-
-
Method Detail
-
sortedPhases
private java.util.List<AssemblyArchiverPhase> sortedPhases()
-
createArchive
public java.io.File createArchive(Assembly assembly, java.lang.String fullName, java.lang.String format, AssemblerConfigurationSource configSource, boolean recompressZippedFiles, java.lang.String mergeManifestMode, java.nio.file.attribute.FileTime outputTimestamp) throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
Create the assembly archive. Generally:- Setup any directory structures for temporary files
- Calculate the output directory/file for the assembly
- Setup any handler components for special descriptor files we may encounter
- Lookup and configure the
Archiverto be used - Determine what, if any, dependency resolution will be required, and resolve any dependency-version conflicts up front to produce a managed-version map for the whole assembly process.
- Iterate through the available
AssemblyArchiverPhaseinstances, executing each to handle a different top-level section of the assembly descriptor, if that section is present.
- Specified by:
createArchivein interfaceAssemblyArchiver- Parameters:
assembly- TheAssemblyfullName- The full name.format- The format.configSource- TheAssemblerConfigurationSourcerecompressZippedFiles- recompress zipped files.mergeManifestMode- How to handle already existing Manifest files (skip, merge, mergewithoutmain)outputTimestamp- Timestamp for reproducible archive entries- Returns:
- The resulting archive file.
- Throws:
ArchiveCreationException- when creation failsAssemblyFormattingException- when formatting failsInvalidAssemblerConfigurationException- when the configuration is bad
-
validate
private void validate(Assembly assembly) throws InvalidAssemblerConfigurationException
-
selectContainerDescriptorHandlers
private java.util.List<ContainerDescriptorHandler> selectContainerDescriptorHandlers(java.util.List<ContainerDescriptorHandlerConfig> requestedContainerDescriptorHandlers, AssemblerConfigurationSource configSource) throws InvalidAssemblerConfigurationException
-
createArchiver
protected org.codehaus.plexus.archiver.Archiver createArchiver(java.lang.String format, boolean includeBaseDir, java.lang.String finalName, AssemblerConfigurationSource configSource, java.util.List<ContainerDescriptorHandler> containerHandlers, boolean recompressZippedFiles, java.lang.String mergeManifestMode, java.nio.file.attribute.FileTime outputTimestamp) throws org.codehaus.plexus.archiver.manager.NoSuchArchiverExceptionCreates the necessary archiver to build the distribution file.- Parameters:
format- Archive formatincludeBaseDir- the base directory for include.finalName- The final name.configSource-AssemblerConfigurationSourcecontainerHandlers- The list ofContainerDescriptorHandlerrecompressZippedFiles- recompress zipped files.mergeManifestMode- how to handle already existing Manifest files- Returns:
- archiver Archiver generated
- Throws:
org.codehaus.plexus.archiver.ArchiverExceptionorg.codehaus.plexus.archiver.manager.NoSuchArchiverException
-
configureJarArchiver
private void configureJarArchiver(org.codehaus.plexus.archiver.jar.JarArchiver archiver, java.lang.String mergeManifestMode)
-
configureContainerDescriptorHandler
private void configureContainerDescriptorHandler(ContainerDescriptorHandler handler, org.codehaus.plexus.util.xml.Xpp3Dom config, AssemblerConfigurationSource configSource) throws InvalidAssemblerConfigurationException
-
configureArchiver
private void configureArchiver(org.codehaus.plexus.archiver.Archiver archiver, AssemblerConfigurationSource configSource)
-
configureComponent
private void configureComponent(java.lang.Object component, org.codehaus.plexus.util.xml.Xpp3Dom config, AssemblerConfigurationSource configSource) throws org.codehaus.plexus.component.repository.exception.ComponentLookupException, org.codehaus.plexus.component.configurator.ComponentConfigurationException- Throws:
org.codehaus.plexus.component.repository.exception.ComponentLookupExceptionorg.codehaus.plexus.component.configurator.ComponentConfigurationException
-
getContainerRealm
private java.lang.Object[] getContainerRealm()
-
createTarZstArchiver
protected org.codehaus.plexus.archiver.Archiver createTarZstArchiver() throws org.codehaus.plexus.archiver.manager.NoSuchArchiverException- Throws:
org.codehaus.plexus.archiver.manager.NoSuchArchiverException
-
-