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 Properties
A set of additional properties to use for filtering(package private) boolean
Set 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.MavenArchiveConfiguration
This is a set of instructions to the archive builder, especially for building .jar files.private File
This is the base directory from which archive files are created.private org.codehaus.plexus.configuration.PlexusConfiguration
Allows additional configuration options that are specific to a particular type of archive format.private AssemblyArchiver
private AssemblyReader
private boolean
Controls whether the assembly plugin tries to attach the resulting assembly to the project.private File
Base directory of the project.protected org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator
Set 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 File
Directory to scan for descriptor files in.private boolean
If this flag is set, everything up to the call to Archiver.createArchive() will be executed.private String
The character encoding scheme to be applied when filtering resources.protected org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator
private String
Expressions 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 String
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.Specifies the formats of the assembly.private boolean
If 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 boolean
Set to true in order to not fail when a descriptor is missing.private boolean
Set totrue
in order to avoid all chmod calls.private boolean
If 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.FixedStringSearchInterpolator
private org.apache.maven.shared.filtering.MavenReaderFilter
Maven shared filtering utility.private org.apache.maven.execution.MavenSession
The Maven Session Objectprivate String
sets the merge manifest mode in the JarArchiverprivate File
The output directory of the assembled distribution file.private String
Timestamp for reproducible output archive entries, either formatted as ISO 8601yyyy-MM-dd'T'HH:mm:ssXXX
or as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).private Integer
Override of group ID in archive type which can store it.private String
Override of group name in archive type which can store it.private Integer
Override of user ID in archive type which can store it.private String
Override of user name in archive type which can store it.private org.apache.maven.project.MavenProjectHelper
Maven ProjectHelper.private List
<org.apache.maven.project.MavenProject> Contains the full list of projects in the reactor.private boolean
Indicates 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.FixedStringSearchInterpolator
private boolean
This will cause the assembly to run only at the top of a given module tree.private File
Directory for site generated.private boolean
Flag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build.private String
Sets the TarArchiver behavior on file paths with more than 100 characters length.private File
Temporary directory that contain the files to be assembled.private boolean
This will cause the assembly to only update an existing archive, if it exists.private boolean
Deprecated.Not used anymore and will be removed in future versionprivate File
Directory 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.FixedStringSearchInterpolator
private org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator
private org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator
void
execute()
Create the binary distribution.org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator
Gets an interpolator from environment variables and stuffString[]
String[]
org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator
Gets an interpolator from environment variables and stufforg.apache.maven.archiver.MavenArchiveConfiguration
org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator
org.apache.maven.shared.filtering.MavenReaderFilter
Maven shared filtering utility.org.apache.maven.execution.MavenSession
abstract org.apache.maven.project.MavenProject
List
<org.apache.maven.project.MavenProject> List
<org.apache.maven.artifact.repository.ArtifactRepository> org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator
boolean
boolean
isDryRun()
boolean
boolean
boolean
boolean
(package private) boolean
(package private) boolean
Returns true if the current project is located at the Execution Root Directory (where mvn was launched)boolean
boolean
Deprecated.static org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator
mainProjectInterpolator
(org.apache.maven.project.MavenProject mainProject) void
setAppendAssemblyId
(boolean appendAssemblyId) void
setArchive
(org.apache.maven.archiver.MavenArchiveConfiguration archive) void
setBasedir
(File basedir) void
setDelimiters
(List<String> delimiters) void
setDescriptorRefs
(String[] descriptorRefs) void
setDescriptors
(String[] descriptors) void
setFilters
(List<String> filters) void
setFinalName
(String finalName) void
setOutputDirectory
(File outputDirectory) void
setReactorProjects
(List<org.apache.maven.project.MavenProject> reactorProjects) void
setSiteDirectory
(File siteDirectory) void
setTarLongFileMode
(String tarLongFileMode) void
setTempRoot
(File tempRoot) void
setWorkDirectory
(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
true
in 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:ssXXX
or 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:
execute
in interfaceorg.apache.maven.plugin.Mojo
- Throws:
org.apache.maven.plugin.MojoExecutionException
org.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:
getBasedir
in interfaceAssemblerConfigurationSource
- Returns:
- The base directory.
-
setBasedir
-
getDescriptorReferences
- Specified by:
getDescriptorReferences
in interfaceAssemblerConfigurationSource
- Returns:
- The descriptor references.
-
getDescriptorSourceDirectory
- Specified by:
getDescriptorSourceDirectory
in interfaceAssemblerConfigurationSource
- Returns:
- The descriptor source directory.
-
getDescriptors
- Specified by:
getDescriptors
in interfaceAssemblerConfigurationSource
- Returns:
- The descriptors.
-
setDescriptors
-
getProject
public abstract org.apache.maven.project.MavenProject getProject()- Specified by:
getProject
in interfaceAssemblerConfigurationSource
- Returns:
- The Maven Project.
-
getSiteDirectory
- Specified by:
getSiteDirectory
in interfaceAssemblerConfigurationSource
- Returns:
- The site directory.
-
setSiteDirectory
-
getFinalName
- Specified by:
getFinalName
in interfaceAssemblerConfigurationSource
- Returns:
- The final name.
-
setFinalName
-
isAssemblyIdAppended
public boolean isAssemblyIdAppended()- Specified by:
isAssemblyIdAppended
in interfaceAssemblerConfigurationSource
- Returns:
- append the assembly id.
-
getTarLongFileMode
- Specified by:
getTarLongFileMode
in interfaceAssemblerConfigurationSource
- Returns:
- Tar long file mode.
-
setTarLongFileMode
-
getOutputDirectory
- Specified by:
getOutputDirectory
in interfaceAssemblerConfigurationSource
- Returns:
- The output directory.
-
setOutputDirectory
-
getJarArchiveConfiguration
public org.apache.maven.archiver.MavenArchiveConfiguration getJarArchiveConfiguration()- Specified by:
getJarArchiveConfiguration
in interfaceAssemblerConfigurationSource
- Returns:
- the jar archive configuration.
-
getWorkingDirectory
- Specified by:
getWorkingDirectory
in interfaceAssemblerConfigurationSource
- Returns:
- The working directory.
-
getTemporaryRootDirectory
- Specified by:
getTemporaryRootDirectory
in interfaceAssemblerConfigurationSource
- Returns:
- The temporary root directory.
-
getArchiveBaseDirectory
- Specified by:
getArchiveBaseDirectory
in interfaceAssemblerConfigurationSource
- Returns:
- The archive base directory.
-
getFilters
- Specified by:
getFilters
in interfaceAssemblerConfigurationSource
- Returns:
- The filters.
-
setFilters
-
getAdditionalProperties
- Specified by:
getAdditionalProperties
in interfaceAssemblerConfigurationSource
- Returns:
- the additional properties
-
isIncludeProjectBuildFilters
public boolean isIncludeProjectBuildFilters()- Specified by:
isIncludeProjectBuildFilters
in interfaceAssemblerConfigurationSource
- Returns:
- include the project build filters or not.
-
getReactorProjects
- Specified by:
getReactorProjects
in 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:
getRemoteRepositories
in interfaceAssemblerConfigurationSource
- Returns:
- The remote repositories.
-
isDryRun
public boolean isDryRun()- Specified by:
isDryRun
in interfaceAssemblerConfigurationSource
- Returns:
- Is this a test run.
-
isIgnoreDirFormatExtensions
public boolean isIgnoreDirFormatExtensions()- Specified by:
isIgnoreDirFormatExtensions
in interfaceAssemblerConfigurationSource
- Returns:
- Ignore directory format extensions.
-
isIgnoreMissingDescriptor
public boolean isIgnoreMissingDescriptor()- Specified by:
isIgnoreMissingDescriptor
in interfaceAssemblerConfigurationSource
- Returns:
- Ignore missing descriptor.
-
getMavenSession
public org.apache.maven.execution.MavenSession getMavenSession()- Specified by:
getMavenSession
in interfaceAssemblerConfigurationSource
- Returns:
- The maven session.
-
getArchiverConfig
- Specified by:
getArchiverConfig
in interfaceAssemblerConfigurationSource
- Returns:
- The archiver configuration.
-
getMavenReaderFilter
public org.apache.maven.shared.filtering.MavenReaderFilter getMavenReaderFilter()Description copied from interface:AssemblerConfigurationSource
Maven shared filtering utility.- Specified by:
getMavenReaderFilter
in interfaceAssemblerConfigurationSource
- Returns:
- the maven reader filter
-
isUpdateOnly
public boolean isUpdateOnly()- Specified by:
isUpdateOnly
in interfaceAssemblerConfigurationSource
- Returns:
- Update only yes/no.
-
isUseJvmChmod
Deprecated.- Specified by:
isUseJvmChmod
in interfaceAssemblerConfigurationSource
- Returns:
- Use JVM chmod yes/no.
-
isIgnorePermissions
public boolean isIgnorePermissions()- Specified by:
isIgnorePermissions
in interfaceAssemblerConfigurationSource
- Returns:
- Ignore permissions yes/no.
-
getEncoding
- Specified by:
getEncoding
in interfaceAssemblerConfigurationSource
- Returns:
- The current encoding.
-
isRecompressZippedFiles
boolean isRecompressZippedFiles() -
getMergeManifestMode
-
getEscapeString
- Specified by:
getEscapeString
in interfaceAssemblerConfigurationSource
- Returns:
- The escape string.
-
getDelimiters
- Specified by:
getDelimiters
in interfaceAssemblerConfigurationSource
- Returns:
- The list of delimiters.
-
setDelimiters
-
getCommandLinePropsInterpolator
public org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator getCommandLinePropsInterpolator()Description copied from interface:AssemblerConfigurationSource
Gets an interpolator from environment variables and stuff- Specified by:
getCommandLinePropsInterpolator
in interfaceAssemblerConfigurationSource
-
getEnvInterpolator
public org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator getEnvInterpolator()Description copied from interface:AssemblerConfigurationSource
Gets an interpolator from environment variables and stuff- Specified by:
getEnvInterpolator
in interfaceAssemblerConfigurationSource
-
getRepositoryInterpolator
public org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator getRepositoryInterpolator()- Specified by:
getRepositoryInterpolator
in interfaceAssemblerConfigurationSource
-
getMainProjectInterpolator
public org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator getMainProjectInterpolator()- Specified by:
getMainProjectInterpolator
in interfaceAssemblerConfigurationSource
-
getOverrideUid
- Specified by:
getOverrideUid
in interfaceAssemblerConfigurationSource
- Returns:
- Override UID.
-
getOverrideUserName
- Specified by:
getOverrideUserName
in interfaceAssemblerConfigurationSource
- Returns:
- Override user name.
-
getOverrideGid
- Specified by:
getOverrideGid
in interfaceAssemblerConfigurationSource
- Returns:
- Override GID.
-
getOverrideGroupName
- Specified by:
getOverrideGroupName
in interfaceAssemblerConfigurationSource
- Returns:
- Override group name.
-