Class AbstractAssemblyMojo
java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.maven.plugins.assembly.mojos.AbstractAssemblyMojo
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled,org.apache.maven.plugin.Mojo,AssemblerConfigurationSource
- Direct Known Subclasses:
SingleAssemblyMojo
public abstract class AbstractAssemblyMojo
extends org.apache.maven.plugin.AbstractMojo
implements AssemblerConfigurationSource
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate PropertiesA set of additional properties to use for filtering(package private) booleanSet to false to exclude the assembly id from the assembly final name, and to create the resultant assembly artifacts without classifier.private org.apache.maven.archiver.MavenArchiveConfigurationThis is a set of instructions to the archive builder, especially for building .jar files.private FileThis is the base directory from which archive files are created.private org.codehaus.plexus.configuration.PlexusConfigurationAllows additional configuration options that are specific to a particular type of archive format.private AssemblyArchiverprivate AssemblyReaderprivate booleanControls whether the assembly plugin tries to attach the resulting assembly to the project.private FileBase directory of the project.protected org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolatorSet of delimiters for expressions to filter within the resources.private String[]A list of references to assembly descriptors available on the plugin's classpath.private String[]A list of descriptor files to generate from.private FileDirectory to scan for descriptor files in.private booleanIf this flag is set, everything up to the call to Archiver.createArchive() will be executed.private StringThe character encoding scheme to be applied when filtering resources.protected org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolatorprivate StringExpressions preceded with this String won't be interpolated.The list of extra filter properties files to be used along with System properties, project properties, and filter properties files specified in the POM build/filters section, which should be used for the filtering during the current mojo execution.private StringThe filename of the assembled distribution file.
NOTE: This parameter has only impact on name in project target directory, installed/deployed artifacts will follow convention for artifact names.Specifies the formats of the assembly.private booleanIf this flag is set, the ".dir" suffix will be suppressed in the output directory name when using assembly/format == 'dir' and other formats that begin with 'dir'.private booleanSet to true in order to not fail when a descriptor is missing.private booleanSet totruein order to avoid all chmod calls.private booleanIf True (default) then the ${project.build.filters} are also used in addition to any further filters defined for the Assembly.protected org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolatorprivate org.apache.maven.shared.filtering.MavenReaderFilterMaven shared filtering utility.private org.apache.maven.execution.MavenSessionThe Maven Session Objectprivate Stringsets the merge manifest mode in the JarArchiverprivate FileThe output directory of the assembled distribution file.private StringTimestamp for reproducible output archive entries, either formatted as ISO 8601yyyy-MM-dd'T'HH:mm:ssXXXor as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).private IntegerOverride of group ID in archive type which can store it.private StringOverride of group name in archive type which can store it.private IntegerOverride of user ID in archive type which can store it.private StringOverride of user name in archive type which can store it.private org.apache.maven.project.MavenProjectHelperMaven ProjectHelper.private List<org.apache.maven.project.MavenProject> Contains the full list of projects in the reactor.private booleanIndicates if zip archives (jar,zip etc) being added to the assembly should be compressed again.private List<org.apache.maven.artifact.repository.ArtifactRepository> protected org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolatorprivate booleanThis will cause the assembly to run only at the top of a given module tree.private FileDirectory for site generated.private booleanFlag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build.private StringSets the TarArchiver behavior on file paths with more than 100 characters length.private FileTemporary directory that contain the files to be assembled.private booleanThis will cause the assembly to only update an existing archive, if it exists.private booleanDeprecated.Not used anymore and will be removed in future versionprivate FileDirectory to unpack JARs into if neededFields inherited from interface org.apache.maven.plugin.Mojo
ROLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolatorprivate org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolatorprivate org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolatorvoidexecute()Create the binary distribution.org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolatorGets an interpolator from environment variables and stuffString[]String[]org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolatorGets an interpolator from environment variables and stufforg.apache.maven.archiver.MavenArchiveConfigurationorg.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolatororg.apache.maven.shared.filtering.MavenReaderFilterMaven shared filtering utility.org.apache.maven.execution.MavenSessionabstract org.apache.maven.project.MavenProjectList<org.apache.maven.project.MavenProject> List<org.apache.maven.artifact.repository.ArtifactRepository> org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolatorbooleanbooleanisDryRun()booleanbooleanbooleanboolean(package private) boolean(package private) booleanReturns true if the current project is located at the Execution Root Directory (where mvn was launched)booleanbooleanDeprecated.static org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolatormainProjectInterpolator(org.apache.maven.project.MavenProject mainProject) voidsetAppendAssemblyId(boolean appendAssemblyId) voidsetArchive(org.apache.maven.archiver.MavenArchiveConfiguration archive) voidsetBasedir(File basedir) voidsetDelimiters(List<String> delimiters) voidsetDescriptorRefs(String[] descriptorRefs) voidsetDescriptors(String[] descriptors) voidsetFilters(List<String> filters) voidsetFinalName(String finalName) voidsetOutputDirectory(File outputDirectory) voidsetReactorProjects(List<org.apache.maven.project.MavenProject> reactorProjects) voidsetSiteDirectory(File siteDirectory) voidsetTarLongFileMode(String tarLongFileMode) voidsetTempRoot(File tempRoot) voidsetWorkDirectory(File workDirectory) Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
-
Field Details
-
commandLinePropertiesInterpolator
protected org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator commandLinePropertiesInterpolator -
envInterpolator
protected org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator envInterpolator -
mainProjectInterpolator
protected org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator mainProjectInterpolator -
rootInterpolator
protected org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator rootInterpolator -
appendAssemblyId
@Parameter(property="assembly.appendAssemblyId", defaultValue="true") boolean appendAssemblyIdSet to false to exclude the assembly id from the assembly final name, and to create the resultant assembly artifacts without classifier. As such, an assembly artifact having the same format as the packaging of the current Maven project will replace the file for this main project artifact. -
encoding
@Parameter(property="encoding", defaultValue="${project.build.sourceEncoding}") private String encodingThe character encoding scheme to be applied when filtering resources. -
escapeString
Expressions preceded with this String won't be interpolated. If you use "\" as the escape string then \${foo} will be replaced with ${foo}.- Since:
- 2.4
-
skipAssembly
@Parameter(property="assembly.skipAssembly", defaultValue="false") private boolean skipAssemblyFlag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build. This makes the assembly plugin more controllable from profiles. -
dryRun
@Parameter(property="assembly.dryRun", defaultValue="false") private boolean dryRunIf this flag is set, everything up to the call to Archiver.createArchive() will be executed. -
ignoreDirFormatExtensions
@Parameter(defaultValue="true") private boolean ignoreDirFormatExtensionsIf this flag is set, the ".dir" suffix will be suppressed in the output directory name when using assembly/format == 'dir' and other formats that begin with 'dir'.
NOTE: Since 2.2-beta-3, the default-value for this is true, NOT false as it used to be. -
remoteRepositories
@Parameter(defaultValue="${project.remoteArtifactRepositories}", required=true, readonly=true) private List<org.apache.maven.artifact.repository.ArtifactRepository> remoteRepositories -
reactorProjects
@Parameter(defaultValue="${reactorProjects}", required=true, readonly=true) private List<org.apache.maven.project.MavenProject> reactorProjectsContains the full list of projects in the reactor. -
outputDirectory
The output directory of the assembled distribution file. -
finalName
The filename of the assembled distribution file.
NOTE: This parameter has only impact on name in project target directory, installed/deployed artifacts will follow convention for artifact names. -
workDirectory
@Parameter(defaultValue="${project.build.directory}/assembly/work", required=true) private File workDirectoryDirectory to unpack JARs into if needed -
formats
Specifies the formats of the assembly. Multiple formats can be supplied and the Assembly Plugin will generate an archive for each desired formats. When deploying your project, all file formats specified will also be deployed. A format is specified by supplying one of the following values in a <format> subelement:- dir - Creates a directory
- zip - Creates a ZIP file format
- tar - Creates a TAR format
- tar.gz or tgz - Creates a gzip'd TAR format
- tar.bz2 or tbz2 - Creates a bzip'd TAR format
- tar.snappy - Creates a snappy'd TAR format
- tar.xz or txz - Creates a xz'd TAR format
- tar.zst or tzst - Creates a zst'd TAR format
-
descriptors
A list of descriptor files to generate from. -
descriptorRefs
A list of references to assembly descriptors available on the plugin's classpath. The default classpath includes these built-in descriptors:bin,jar-with-dependencies,src, andproject. You can add others by adding dependencies to the plugin. -
descriptorSourceDirectory
Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components. -
archiveBaseDirectory
This is the base directory from which archive files are created. This base directory pre-pended to any<directory>specifications in the assembly descriptor. This is an optional parameter. -
tarLongFileMode
Sets the TarArchiver behavior on file paths with more than 100 characters length. Valid values are: "warn" (default), "fail", "truncate", "gnu", "posix", "posix_warn" or "omit". -
basedir
Base directory of the project. -
projectHelper
@Component private org.apache.maven.project.MavenProjectHelper projectHelperMaven ProjectHelper. -
mavenReaderFilter
@Component private org.apache.maven.shared.filtering.MavenReaderFilter mavenReaderFilterMaven shared filtering utility. -
mavenSession
@Parameter(defaultValue="${session}", readonly=true, required=true) private org.apache.maven.execution.MavenSession mavenSessionThe Maven Session Object -
tempRoot
@Parameter(defaultValue="${project.build.directory}/archive-tmp", required=true, readonly=true) private File tempRootTemporary directory that contain the files to be assembled. -
siteDirectory
@Parameter(defaultValue="${project.reporting.outputDirectory}", readonly=true) private File siteDirectoryDirectory for site generated. -
ignoreMissingDescriptor
@Parameter(property="assembly.ignoreMissingDescriptor", defaultValue="false") private boolean ignoreMissingDescriptorSet to true in order to not fail when a descriptor is missing. -
archive
@Parameter private org.apache.maven.archiver.MavenArchiveConfiguration archiveThis is a set of instructions to the archive builder, especially for building .jar files. It enables you to specify a Manifest file for the jar, in addition to other options. See Maven Archiver Reference. -
filters
The list of extra filter properties files to be used along with System properties, project properties, and filter properties files specified in the POM build/filters section, which should be used for the filtering during the current mojo execution.
Normally, these will be configured from a plugin's execution section, to provide a different set of filters for a particular execution. -
additionalProperties
A set of additional properties to use for filtering- Since:
- 3.3.0
-
includeProjectBuildFilters
@Parameter(property="assembly.includeProjectBuildFilters", defaultValue="true") private boolean includeProjectBuildFiltersIf True (default) then the ${project.build.filters} are also used in addition to any further filters defined for the Assembly.- Since:
- 2.4.2
-
attach
@Parameter(property="assembly.attach", defaultValue="true") private boolean attachControls whether the assembly plugin tries to attach the resulting assembly to the project.- Since:
- 2.2-beta-1
-
recompressZippedFiles
@Parameter(defaultValue="true") private boolean recompressZippedFilesIndicates if zip archives (jar,zip etc) being added to the assembly should be compressed again. Compressing again can result in smaller archive size, but gives noticeably longer execution time.- Since:
- 2.4
-
mergeManifestMode
sets the merge manifest mode in the JarArchiver- Since:
- 3
-
assemblyArchiver
-
assemblyReader
-
archiverConfig
@Parameter private org.codehaus.plexus.configuration.PlexusConfiguration archiverConfigAllows additional configuration options that are specific to a particular type of archive format. This is intended to capture an XML configuration that will be used to reflectively setup the options on the archiver instance.
To see the possible options for archiver configuration visit the Plexus Archiver Documentation
For instance, to direct an assembly with the "ear" format to use a particular deployment descriptor, you should specify the following for the archiverConfig value in your plugin configuration:
<appxml>${project.basedir}/somepath/app.xml</appxml>- Since:
- 2.2-beta-3
-
runOnlyAtExecutionRoot
@Parameter(property="assembly.runOnlyAtExecutionRoot", defaultValue="false") private boolean runOnlyAtExecutionRootThis will cause the assembly to run only at the top of a given module tree. That is, run in the project contained in the same folder where the mvn execution was launched.- Since:
- 2.2-beta-4
-
updateOnly
@Parameter(property="assembly.updateOnly", defaultValue="false") private boolean updateOnlyThis will cause the assembly to only update an existing archive, if it exists.Note: The property that can be used on the command line was misspelled as "assembly.updatOnly" in versions prior to version 2.4.
- Since:
- 2.2
-
useJvmChmod
@Parameter(property="assembly.useJvmChmod", defaultValue="false") private boolean useJvmChmodDeprecated.Not used anymore and will be removed in future version- Since:
- 2.2
-
ignorePermissions
@Parameter(property="assembly.ignorePermissions", defaultValue="false") private boolean ignorePermissionsSet to
truein order to avoid all chmod calls.NOTE: This will cause the assembly plugin to DISREGARD all fileMode/directoryMode settings in the assembly descriptor, and all file permissions in unpacked dependencies!
- Since:
- 2.2
-
delimiters
Set of delimiters for expressions to filter within the resources. These delimiters are specified in the form 'beginToken*endToken'. If no '*' is given, the delimiter is assumed to be the same for start and end.
So, the default filtering delimiters might be specified as:
<delimiters> <delimiter>${*}</delimiter> <delimiter>@</delimiter> </delimiters>Since the '@' delimiter is the same on both ends, we don't need to specify '@*@' (though we can).
- Since:
- 2.4
-
outputTimestamp
Timestamp for reproducible output archive entries, either formatted as ISO 8601yyyy-MM-dd'T'HH:mm:ssXXXor as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).- Since:
- 3.2.0
-
overrideUid
Override of user ID in archive type which can store it. -
overrideUserName
Override of user name in archive type which can store it. -
overrideGid
Override of group ID in archive type which can store it. -
overrideGroupName
Override of group name in archive type which can store it.
-
-
Constructor Details
-
AbstractAssemblyMojo
public AbstractAssemblyMojo()
-
-
Method Details
-
mainProjectInterpolator
public static org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator mainProjectInterpolator(org.apache.maven.project.MavenProject mainProject) -
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureExceptionCreate the binary distribution.- Specified by:
executein interfaceorg.apache.maven.plugin.Mojo- Throws:
org.apache.maven.plugin.MojoExecutionExceptionorg.apache.maven.plugin.MojoFailureException
-
createRepositoryInterpolator
private org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator createRepositoryInterpolator() -
createCommandLinePropertiesInterpolator
private org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator createCommandLinePropertiesInterpolator() -
createEnvInterpolator
private org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator createEnvInterpolator() -
isThisTheExecutionRoot
boolean isThisTheExecutionRoot()Returns true if the current project is located at the Execution Root Directory (where mvn was launched)- Returns:
- if this is the execution root
-
getBasedir
- Specified by:
getBasedirin interfaceAssemblerConfigurationSource- Returns:
- The base directory.
-
setBasedir
-
getDescriptorReferences
- Specified by:
getDescriptorReferencesin interfaceAssemblerConfigurationSource- Returns:
- The descriptor references.
-
getDescriptorSourceDirectory
- Specified by:
getDescriptorSourceDirectoryin interfaceAssemblerConfigurationSource- Returns:
- The descriptor source directory.
-
getDescriptors
- Specified by:
getDescriptorsin interfaceAssemblerConfigurationSource- Returns:
- The descriptors.
-
setDescriptors
-
getProject
public abstract org.apache.maven.project.MavenProject getProject()- Specified by:
getProjectin interfaceAssemblerConfigurationSource- Returns:
- The Maven Project.
-
getSiteDirectory
- Specified by:
getSiteDirectoryin interfaceAssemblerConfigurationSource- Returns:
- The site directory.
-
setSiteDirectory
-
getFinalName
- Specified by:
getFinalNamein interfaceAssemblerConfigurationSource- Returns:
- The final name.
-
setFinalName
-
isAssemblyIdAppended
public boolean isAssemblyIdAppended()- Specified by:
isAssemblyIdAppendedin interfaceAssemblerConfigurationSource- Returns:
- append the assembly id.
-
getTarLongFileMode
- Specified by:
getTarLongFileModein interfaceAssemblerConfigurationSource- Returns:
- Tar long file mode.
-
setTarLongFileMode
-
getOutputDirectory
- Specified by:
getOutputDirectoryin interfaceAssemblerConfigurationSource- Returns:
- The output directory.
-
setOutputDirectory
-
getJarArchiveConfiguration
public org.apache.maven.archiver.MavenArchiveConfiguration getJarArchiveConfiguration()- Specified by:
getJarArchiveConfigurationin interfaceAssemblerConfigurationSource- Returns:
- the jar archive configuration.
-
getWorkingDirectory
- Specified by:
getWorkingDirectoryin interfaceAssemblerConfigurationSource- Returns:
- The working directory.
-
getTemporaryRootDirectory
- Specified by:
getTemporaryRootDirectoryin interfaceAssemblerConfigurationSource- Returns:
- The temporary root directory.
-
getArchiveBaseDirectory
- Specified by:
getArchiveBaseDirectoryin interfaceAssemblerConfigurationSource- Returns:
- The archive base directory.
-
getFilters
- Specified by:
getFiltersin interfaceAssemblerConfigurationSource- Returns:
- The filters.
-
setFilters
-
getAdditionalProperties
- Specified by:
getAdditionalPropertiesin interfaceAssemblerConfigurationSource- Returns:
- the additional properties
-
isIncludeProjectBuildFilters
public boolean isIncludeProjectBuildFilters()- Specified by:
isIncludeProjectBuildFiltersin interfaceAssemblerConfigurationSource- Returns:
- include the project build filters or not.
-
getReactorProjects
- Specified by:
getReactorProjectsin interfaceAssemblerConfigurationSource- Returns:
- The list of reactor projects.
-
setReactorProjects
-
setAppendAssemblyId
public void setAppendAssemblyId(boolean appendAssemblyId) -
setArchive
public void setArchive(org.apache.maven.archiver.MavenArchiveConfiguration archive) -
setDescriptorRefs
-
setTempRoot
-
setWorkDirectory
-
getRemoteRepositories
- Specified by:
getRemoteRepositoriesin interfaceAssemblerConfigurationSource- Returns:
- The remote repositories.
-
isDryRun
public boolean isDryRun()- Specified by:
isDryRunin interfaceAssemblerConfigurationSource- Returns:
- Is this a test run.
-
isIgnoreDirFormatExtensions
public boolean isIgnoreDirFormatExtensions()- Specified by:
isIgnoreDirFormatExtensionsin interfaceAssemblerConfigurationSource- Returns:
- Ignore directory format extensions.
-
isIgnoreMissingDescriptor
public boolean isIgnoreMissingDescriptor()- Specified by:
isIgnoreMissingDescriptorin interfaceAssemblerConfigurationSource- Returns:
- Ignore missing descriptor.
-
getMavenSession
public org.apache.maven.execution.MavenSession getMavenSession()- Specified by:
getMavenSessionin interfaceAssemblerConfigurationSource- Returns:
- The maven session.
-
getArchiverConfig
- Specified by:
getArchiverConfigin interfaceAssemblerConfigurationSource- Returns:
- The archiver configuration.
-
getMavenReaderFilter
public org.apache.maven.shared.filtering.MavenReaderFilter getMavenReaderFilter()Description copied from interface:AssemblerConfigurationSourceMaven shared filtering utility.- Specified by:
getMavenReaderFilterin interfaceAssemblerConfigurationSource- Returns:
- the maven reader filter
-
isUpdateOnly
public boolean isUpdateOnly()- Specified by:
isUpdateOnlyin interfaceAssemblerConfigurationSource- Returns:
- Update only yes/no.
-
isUseJvmChmod
Deprecated.- Specified by:
isUseJvmChmodin interfaceAssemblerConfigurationSource- Returns:
- Use JVM chmod yes/no.
-
isIgnorePermissions
public boolean isIgnorePermissions()- Specified by:
isIgnorePermissionsin interfaceAssemblerConfigurationSource- Returns:
- Ignore permissions yes/no.
-
getEncoding
- Specified by:
getEncodingin interfaceAssemblerConfigurationSource- Returns:
- The current encoding.
-
isRecompressZippedFiles
boolean isRecompressZippedFiles() -
getMergeManifestMode
-
getEscapeString
- Specified by:
getEscapeStringin interfaceAssemblerConfigurationSource- Returns:
- The escape string.
-
getDelimiters
- Specified by:
getDelimitersin interfaceAssemblerConfigurationSource- Returns:
- The list of delimiters.
-
setDelimiters
-
getCommandLinePropsInterpolator
public org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator getCommandLinePropsInterpolator()Description copied from interface:AssemblerConfigurationSourceGets an interpolator from environment variables and stuff- Specified by:
getCommandLinePropsInterpolatorin interfaceAssemblerConfigurationSource
-
getEnvInterpolator
public org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator getEnvInterpolator()Description copied from interface:AssemblerConfigurationSourceGets an interpolator from environment variables and stuff- Specified by:
getEnvInterpolatorin interfaceAssemblerConfigurationSource
-
getRepositoryInterpolator
public org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator getRepositoryInterpolator()- Specified by:
getRepositoryInterpolatorin interfaceAssemblerConfigurationSource
-
getMainProjectInterpolator
public org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator getMainProjectInterpolator()- Specified by:
getMainProjectInterpolatorin interfaceAssemblerConfigurationSource
-
getOverrideUid
- Specified by:
getOverrideUidin interfaceAssemblerConfigurationSource- Returns:
- Override UID.
-
getOverrideUserName
- Specified by:
getOverrideUserNamein interfaceAssemblerConfigurationSource- Returns:
- Override user name.
-
getOverrideGid
- Specified by:
getOverrideGidin interfaceAssemblerConfigurationSource- Returns:
- Override GID.
-
getOverrideGroupName
- Specified by:
getOverrideGroupNamein interfaceAssemblerConfigurationSource- Returns:
- Override group name.
-