Class DefaultAssemblyArchiver
- java.lang.Object
-
- org.codehaus.plexus.logging.AbstractLogEnabled
-
- org.apache.maven.plugins.assembly.archive.DefaultAssemblyArchiver
-
- All Implemented Interfaces:
AssemblyArchiver,org.codehaus.plexus.logging.LogEnabled,org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable
@Component(role=AssemblyArchiver.class, instantiationStrategy="per-lookup") public class DefaultAssemblyArchiver extends org.codehaus.plexus.logging.AbstractLogEnabled implements AssemblyArchiver, org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable
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>containerDescriptorHandlers-
Fields inherited from interface org.apache.maven.plugins.assembly.archive.AssemblyArchiver
ROLE
-
-
Constructor Summary
Constructors Modifier Constructor Description DefaultAssemblyArchiver()protectedDefaultAssemblyArchiver(org.codehaus.plexus.archiver.manager.ArchiverManager archiverManager, java.util.List<AssemblyArchiverPhase> assemblyPhases)
-
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)voidcontextualize(org.codehaus.plexus.context.Context context)java.io.FilecreateArchive(Assembly assembly, java.lang.String fullName, java.lang.String format, AssemblerConfigurationSource configSource, boolean recompressZippedFiles, java.lang.String mergeManifestMode, java.util.Date 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.util.Date outputTimestamp)Creates the necessary archiver to build the distribution file.protected org.codehaus.plexus.archiver.ArchivercreateTarArchiver(java.lang.String format, org.codehaus.plexus.archiver.tar.TarLongFileMode tarLongFileMode)protected org.codehaus.plexus.archiver.ArchivercreateWarArchiver()private java.lang.Object[]getContainerRealm()private java.util.List<ContainerDescriptorHandler>selectContainerDescriptorHandlers(java.util.List<ContainerDescriptorHandlerConfig> requestedContainerDescriptorHandlers, AssemblerConfigurationSource configSource)protected voidsetContainer(org.codehaus.plexus.PlexusContainer container)private java.util.List<AssemblyArchiverPhase>sortedPhases()private voidvalidate(Assembly assembly)
-
-
-
Field Detail
-
archiverManager
@Requirement private org.codehaus.plexus.archiver.manager.ArchiverManager archiverManager
-
assemblyPhases
@Requirement(role=AssemblyArchiverPhase.class) private java.util.List<AssemblyArchiverPhase> assemblyPhases
-
containerDescriptorHandlers
@Requirement(role=ContainerDescriptorHandler.class) private java.util.Map<java.lang.String,ContainerDescriptorHandler> containerDescriptorHandlers
-
container
private org.codehaus.plexus.PlexusContainer container
-
-
Constructor Detail
-
DefaultAssemblyArchiver
public DefaultAssemblyArchiver()
-
DefaultAssemblyArchiver
protected DefaultAssemblyArchiver(org.codehaus.plexus.archiver.manager.ArchiverManager archiverManager, java.util.List<AssemblyArchiverPhase> assemblyPhases)- Parameters:
archiverManager- The archive manager.assemblyPhases- The list ofAssemblyArchiverPhase
-
-
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.util.Date 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.util.Date 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
-
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()
-
createWarArchiver
protected org.codehaus.plexus.archiver.Archiver createWarArchiver() throws org.codehaus.plexus.archiver.manager.NoSuchArchiverException- Throws:
org.codehaus.plexus.archiver.manager.NoSuchArchiverException
-
createTarArchiver
protected org.codehaus.plexus.archiver.Archiver createTarArchiver(java.lang.String format, org.codehaus.plexus.archiver.tar.TarLongFileMode tarLongFileMode) throws org.codehaus.plexus.archiver.manager.NoSuchArchiverException- Throws:
org.codehaus.plexus.archiver.manager.NoSuchArchiverException
-
contextualize
public void contextualize(org.codehaus.plexus.context.Context context) throws org.codehaus.plexus.context.ContextException- Specified by:
contextualizein interfaceorg.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable- Throws:
org.codehaus.plexus.context.ContextException
-
setContainer
protected void setContainer(org.codehaus.plexus.PlexusContainer container)
-
-