![collapse wedge](Expanded.png) ![](Unchecked.png) Mojos (org.apache.maven.plugin.assembly.mojo)
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Uses:
|
![*](LeafRowHandle.png) AssemblyArchiver
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Provides:
|
![*](LeafRowHandle.png) ![](Unchecked.png) implementation of AssemblyConfigurationSource, for use in assembly components
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Notes:
|
![*](LeafRowHandle.png) AssemblyConfigurationSource transports build state given by mojo parameters to deeper assembly components
|
![*](LeafRowHandle.png) AssemblyArchiver abstracts the business of creating the assembly artifact from the mojos
|
![collapse wedge](Expanded.png) ![](Unchecked.png) AssemblyArchiver (org.apache.maven.plugin.assembly.archive)
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Uses:
|
![*](LeafRowHandle.png) ArchiverManager
|
![*](LeafRowHandle.png) ![](Unchecked.png) the set of ArchiveAssemblyPhase implementations
|
![*](LeafRowHandle.png) AssemblyDescriptorReader and AssemblyInterpolator
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Provides:
|
![collapse wedge](Expanded.png) ![](Unchecked.png) logic to discover and read assembly descriptors
|
![*](LeafRowHandle.png) AssemblyDescriptorReader and AssemblyInterpolator help with this task
|
![collapse wedge](Expanded.png) ![](Unchecked.png) logic to discover and add filters that merge container descriptor files
|
![*](LeafRowHandle.png) ![](Unchecked.png) these are implementations of ContainerDescriptorHandler
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Notes:
|
![*](LeafRowHandle.png) Archiver instances are retrieved from the ArchiverManager
|
![*](LeafRowHandle.png) Archiver instances are wrapped with AssemblyProxyArchiver, which adds global prefixing, dry-run, and duplicate detection features
|
![*](LeafRowHandle.png) ArchiveAssemblyPhases execute the actual interaction with the (proxied) Archiver instance to produce the assembly
|
![*](LeafRowHandle.png) AssemblyProxyArchiver is the only one initialized as a POJO with the real Archiver component instance passed into the constructor; all other classes used by the AssemblyArchiver are components injected by Plexus
|
![*](LeafRowHandle.png) ArchiveAssemblyPhase instances are injected via a Map which is keyed by their respective role-hints; I don't believe the ordering of keys in this map is deterministic.
|
![*](LeafRowHandle.png) ContainerDescriptorHandler instances are components that are injected via a Map which is keyed by their respective role-hints. Custom implementations can be added via the plugin-level dependency configuration in the pom.xml
|
![collapse wedge](Expanded.png) ![](Unchecked.png) ArchiverAssemblyPhase (org.apache.maven.plugin.assembly.archive.phase)
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Default Implementations:
|
![*](LeafRowHandle.png) ModuleSetAssemblyPhase
|
![*](LeafRowHandle.png) DependencySetAssemblyPhase
|
![*](LeafRowHandle.png) FileSetAssemblyPhase
|
![*](LeafRowHandle.png) FileItemAssemblyPhase
|
![*](LeafRowHandle.png) RepositoryAssemblyPhase
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Uses:
|
![*](LeafRowHandle.png) ArchiverTask implementations, as POJOs
|
![*](LeafRowHandle.png) FileFormatter ( FileItemAssemblyPhase)
|
![*](LeafRowHandle.png) RepositoryAssembler (from maven-repository-builder; used by RepositoryAssemblyPhase)
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Notes:
|
![*](LeafRowHandle.png) ![](Unchecked.png) Initialized as Plexus components
|
![*](LeafRowHandle.png) ![](Unchecked.png) generally, each implementation handles one top-level section of the assembly descriptor
|
![*](LeafRowHandle.png) ![](Unchecked.png) phases share common logic in terms of how they interact with the Archiver instance; this is captured in different ArchiverTask implementations
|
![collapse wedge](Expanded.png) ![](Unchecked.png) ArchiverTask (org.apache.maven.plugin.assembly.archive.task)
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Default Implementations:
|
![*](LeafRowHandle.png) AddArtifactTask
|
![*](LeafRowHandle.png) AddDependencySetsTask
|
![*](LeafRowHandle.png) AddDirectoryTask
|
![*](LeafRowHandle.png) AddFileSetsTask
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Uses:
|
![*](LeafRowHandle.png) DependencyResolver ( AddDependencySetsTask)
|
![*](LeafRowHandle.png) FileSetFormatter ( AddFileSetsTask)
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Notes:
|
![*](LeafRowHandle.png) ![](Unchecked.png) Used as POJOs that are initialized then executed by different ArchiverAssemblyPhase instances.
|
![collapse wedge](Expanded.png) ![](Unchecked.png) ContainerDescriptorHandler (org.apache.maven.plugin.assembly.filter)
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Notes:
|
![*](LeafRowHandle.png) ![](Unchecked.png) Added to the AssemblyProxyArchiver as a filter and finalizer
|
![*](LeafRowHandle.png) ![](Unchecked.png) Ability to cherry-pick files before they're added to the assembly archive, and process them (processing usually means aggregation/merging, but could be anything)
|
![*](LeafRowHandle.png) ![](Unchecked.png) Ability to add a set of "virtual" files to the assembly archive just before it is closed.
|
![*](LeafRowHandle.png) ComponentsXmlArchiveFileFilter (for plexus components.xml files) is always present during the assembly process.
|
![collapse wedge](Expanded.png) ![](Unchecked.png) DependencyResolver (org.apache.maven.plugin.assembly.artifact)
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Uses:
|
![*](LeafRowHandle.png) ArtifactFactory from maven-artifact
|
![*](LeafRowHandle.png) ArtifactRepository from maven-artifact
|
![*](LeafRowHandle.png) MavenProjectBuilder from maven-project
|
![*](LeafRowHandle.png) ArtifactResolver from maven-artifact
|
![*](LeafRowHandle.png) MavenMetadataSource/ ArtifactMetadataSource from maven-project/maven-artifact
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Notes:
|
![*](LeafRowHandle.png) ![](Unchecked.png) Selects the best implementation of ArtifactResolver it can find, based on a String-array of preferential role-hints. If none of the preferred resolvers can be found, it defaults to a lookup without any role-hint. This is necessary for compatibility with maven 2.0.x.
|
![*](LeafRowHandle.png) ![](Unchecked.png) This component can take a List of remote repositories from the current build, append to this the List of remote repositories from the project passed in (avoiding duplicate entries, based on repository id), and use that as a basis for resolving dependency artifacts
|
![*](LeafRowHandle.png) AssemblyConfigurationSource.isUseTransitiveDependencies() is used in calling components to control whether this component (the resolver) does a full transitive resolution of the project's dependencies, or just resolves the direct dependency artifacts
|
![collapse wedge](Expanded.png) ![](Unchecked.png) FileFormatter (org.apache.maven.plugin.assembly.format)
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Uses:
|
![*](LeafRowHandle.png) AssemblyFileUtils for line-ending normalization and temp-dir/temp-file management
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Provides:
|
![*](LeafRowHandle.png) ![](Unchecked.png) Interpolation of a given file's contents, based on project values and an optional Properties file or set of filter files (supplied by AssemblyConfigurationSource)
|
![*](LeafRowHandle.png) ![](Unchecked.png) Normalization of line endings, using values: keep (don't change), dos (\r\n), crlf (\r\n), unix (\n), lf (\n)
|
![collapse wedge](Expanded.png) ![](Unchecked.png) Notes:
|
![*](LeafRowHandle.png) ![](Unchecked.png) If line ending is not 'keep', the final line in the file will always end with a newline string, regardless of whether this is the case in the original file. See MASSEMBLY-96.
|