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 configuring Archiver instances, executing multiple .archive.phase.AssemblyArchiverPhase instances to interpret the various sections of the assembly descriptor and determine which files to add, and other associated activities.
  • Field Details

  • Constructor Details

    • DefaultAssemblyArchiver

      public DefaultAssemblyArchiver()
    • DefaultAssemblyArchiver

      protected DefaultAssemblyArchiver(org.codehaus.plexus.archiver.manager.ArchiverManager archiverManager, List<AssemblyArchiverPhase> assemblyPhases)
      Parameters:
      archiverManager - The archive manager.
      assemblyPhases - The list of AssemblyArchiverPhase
  • Method Details

    • sortedPhases

      private List<AssemblyArchiverPhase> sortedPhases()
    • createArchive

      public File createArchive(Assembly assembly, String fullName, String format, AssemblerConfigurationSource configSource, boolean recompressZippedFiles, String mergeManifestMode, Date outputTimestamp) throws ArchiveCreationException, AssemblyFormattingException, InvalidAssemblerConfigurationException
      Create the assembly archive. Generally:
      1. Setup any directory structures for temporary files
      2. Calculate the output directory/file for the assembly
      3. Setup any handler components for special descriptor files we may encounter
      4. Lookup and configure the Archiver to be used
      5. 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.
      6. Iterate through the available AssemblyArchiverPhase instances, executing each to handle a different top-level section of the assembly descriptor, if that section is present.
      Specified by:
      createArchive in interface AssemblyArchiver
      Parameters:
      assembly - The Assembly
      fullName - The full name.
      format - The format.
      configSource - The AssemblerConfigurationSource
      recompressZippedFiles - 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 fails
      AssemblyFormattingException - when formatting fails
      InvalidAssemblerConfigurationException - when the configuration is bad
    • validate

      private void validate(Assembly assembly) throws InvalidAssemblerConfigurationException
      Throws:
      InvalidAssemblerConfigurationException
    • selectContainerDescriptorHandlers

      private List<ContainerDescriptorHandler> selectContainerDescriptorHandlers(List<ContainerDescriptorHandlerConfig> requestedContainerDescriptorHandlers, AssemblerConfigurationSource configSource) throws InvalidAssemblerConfigurationException
      Throws:
      InvalidAssemblerConfigurationException
    • createArchiver

      protected org.codehaus.plexus.archiver.Archiver createArchiver(String format, boolean includeBaseDir, String finalName, AssemblerConfigurationSource configSource, List<ContainerDescriptorHandler> containerHandlers, boolean recompressZippedFiles, String mergeManifestMode, Date outputTimestamp) throws org.codehaus.plexus.archiver.manager.NoSuchArchiverException
      Creates the necessary archiver to build the distribution file.
      Parameters:
      format - Archive format
      includeBaseDir - the base directory for include.
      finalName - The final name.
      configSource - AssemblerConfigurationSource
      containerHandlers - The list of ContainerDescriptorHandler
      recompressZippedFiles - recompress zipped files.
      mergeManifestMode - how to handle already existing Manifest files
      Returns:
      archiver Archiver generated
      Throws:
      org.codehaus.plexus.archiver.ArchiverException
      org.codehaus.plexus.archiver.manager.NoSuchArchiverException
    • configureContainerDescriptorHandler

      private void configureContainerDescriptorHandler(ContainerDescriptorHandler handler, org.codehaus.plexus.util.xml.Xpp3Dom config, AssemblerConfigurationSource configSource) throws InvalidAssemblerConfigurationException
      Throws:
      InvalidAssemblerConfigurationException
    • configureArchiver

      private void configureArchiver(org.codehaus.plexus.archiver.Archiver archiver, AssemblerConfigurationSource configSource)
    • configureComponent

      private void configureComponent(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.ComponentLookupException
      org.codehaus.plexus.component.configurator.ComponentConfigurationException
    • getContainerRealm

      private 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(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:
      contextualize in interface org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable
      Throws:
      org.codehaus.plexus.context.ContextException
    • setContainer

      protected void setContainer(org.codehaus.plexus.PlexusContainer container)