Assembly

A definition of an assembly. This descriptor specifies the type of assembly archive to create, the contents of the assembly, and the ways in which dependencies are bundled with an assembly.

An assembly defines a collection of files usually distributed in an archive format such as zip, tar, or tar.gz that is generated from a project. For example, a project could produce a ZIP assembly which contains a project's JAR artifact in the root directory, the runtime dependencies in a lib/ directory, and a shell script to launch a stand-alone application.

<assembly>
  <id/>
  <formats/>
  <includeBaseDirectory/>
  <includeSiteDirectory/>
  <moduleSets>
    <moduleSet>
      <includes/>
      <excludes/>
      <sources>
        <outputDirectory/>
        <includes/>
        <excludes/>
        <fileMode/>
        <directoryMode/>
      </sources>
      <binaries>
        <includeDependencies/>
        <unpack/>
        <outputFileNameMapping/>
        <outputDirectory/>
        <includes/>
        <excludes/>
        <fileMode/>
        <directoryMode/>
      </binaries>
    </moduleSet>
  </moduleSets>
  <fileSets>
    <fileSet>
      <directory/>
      <lineEnding/>
      <outputDirectory/>
      <includes/>
      <excludes/>
      <fileMode/>
      <directoryMode/>
    </fileSet>
  </fileSets>
  <files>
    <file>
      <source/>
      <outputDirectory/>
      <destName/>
      <fileMode/>
      <lineEnding/>
      <filtered/>
    </file>
  </files>
  <dependencySets>
    <dependencySet>
      <outputFileNameMapping/>
      <unpack/>
      <scope/>
      <outputDirectory/>
      <includes/>
      <excludes/>
      <fileMode/>
      <directoryMode/>
    </dependencySet>
  </dependencySets>
  <repositories>
    <repository>
      <includeMetadata/>
      <groupVersionAlignments>
        <groupVersionAlignment>
          <id/>
          <version/>
          <excludes/>
        </groupVersionAlignment>
      </groupVersionAlignments>
      <outputDirectory/>
      <includes/>
      <excludes/>
      <fileMode/>
      <directoryMode/>
    </repository>
  </repositories>
  <componentDescriptors/>
</assembly>

assembly

Describes the assembly layout and packaging.

Element Description
id The id of this assembly. This is a symbolic name for a particular assembly of files from this project.
formats Specify the formats of the assembly. A format is specified by supplying one of the following values in a <format> subelement:
  • "zip" - Creates a ZIP file format
  • "gz" - Creates a GZIP format
  • "tar" - Creates a TAR format
  • "tar.gz" - Creates a gzip'd TAR format
  • "tar.bz2 - Creates a bzip'd TAR format
includeBaseDirectory Includes a base directory in the final archive. For example, if you are creating an assembly named "your-app", setting includeBaseDirectory to true will create an archive that includes this base directory. If this option is set to false the archive created will unzip its content to the current directory. The default value is true.
includeSiteDirectory No description. The default value is false.
moduleSets Specify which modules source files to include in the assembly
fileSets Specify assembly parameters for groups of files.
files Specify assembly parameters for single files.
dependencySets Specify assembly behavior for sets of dependencies.
repositories Specify assembly behavior for sets of repositories.
componentDescriptors File relative to basedir containing Component.

moduleSet

No description.
Element Description
includes This is a list of <include> elements, each containing a module reference of the type groupId:artifactId. Modules matching these elements will be included in this set.
excludes This is a list of <exclude> elements, each containing a module reference of the type groupId:artifactId. Modules matching these elements will be excluded from this set.
sources When this is configured, the plugin will include the source files of the included modules from this set in the resulting assembly, according to the configuration.
binaries When this is configured, the plugin will include the binaries of the included modules from this set in the resulting assembly, according to the configuration.

sources

Configuration for including the source files for a Module in an assembly.
Element Description
outputDirectory Specifies the output directory relative to the root of the root directory of the assembly. For example, "log" will put the specified files in the log directory.
includes When <include> subelements are present, they define a set of files and directory to include.
excludes When <exclude> subelements are present, they define a set of files and directory to exclude.
fileMode Similar to a UNIX permission. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0644 translates to User read-write, Group and Other read-only. (more on unix-style permissions) The default value is 0644.
directoryMode Similar to a UNIX permission. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0644 translates to User read-write, Group and Other read-only. (more on unix-style permissions) The default value is 0755.

binaries

Configuration for including the binary files for a Module in an assembly.
Element Description
includeDependencies If set to true, the plugin will include the direct and transitive dependencies of of the project modules included here. Otherwise, it will only include the module packages only. Default value is false. The default value is false.
unpack If set to true, this property will unpack all module packages into the specified output directory. When set to false module packages will be included as archives (jars). Default value is true. The default value is true.
outputFileNameMapping Specify the mapping pattern for all dependencies included in this assembly. Default is ${artifactId}-${version}.${extension}. The default value is ${artifactId}-${version}.${extension}.
outputDirectory Specifies the output directory relative to the root of the root directory of the assembly. For example, "log" will put the specified files in the log directory.
includes When <include> subelements are present, they define a set of files and directory to include.
excludes When <exclude> subelements are present, they define a set of files and directory to exclude.
fileMode Similar to a UNIX permission. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0644 translates to User read-write, Group and Other read-only. (more on unix-style permissions) The default value is 0644.
directoryMode Similar to a UNIX permission. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0644 translates to User read-write, Group and Other read-only. (more on unix-style permissions) The default value is 0755.

fileSet

No description.
Element Description
directory Absolute or relative from the module's directory. For example, "src/main/bin" would select this subdirectory of the project in which this dependency is defined.
lineEnding Controls the line-endings of files in this fileSet. Valid values:
  • "keep" - Preserve all line endings
  • "unix" - Use Unix-style line endings
  • "lf" - Use a single line-feed line endings
  • "dos" - Use DOS-style line endings
  • "crlf" - Use Carraige-return, line-feed line endings
outputDirectory Specifies the output directory relative to the root of the root directory of the assembly. For example, "log" will put the specified files in the log directory.
includes When <include> subelements are present, they define a set of files and directory to include.
excludes When <exclude> subelements are present, they define a set of files and directory to exclude.
fileMode Similar to a UNIX permission. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0644 translates to User read-write, Group and Other read-only. (more on unix-style permissions) The default value is 0644.
directoryMode Similar to a UNIX permission. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0644 translates to User read-write, Group and Other read-only. (more on unix-style permissions) The default value is 0755.

file

Allows individual file copy with option to change destination file name not supported by fileSet
Element Description
source Absolute or relative from the module's directory.
outputDirectory Specifies the output directory relative to the root of the root directory of the assembly. For example, "log" will put the specified files in the log directory.
destName Destination file name in outputDirectory. Default is the same name as the source's file.
fileMode Similar to a UNIX permission. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0644 translates to User read-write, Group and Other read-only. (more on unix-style permissions) The default value is 0644.
lineEnding Controls the line-endings of files in this fileSet. Valid values are:
  • "keep" - Preserve all line endings
  • "unix" - Use Unix-style line endings
  • "lf" - Use a single line-feed line endings
  • "dos" - Use DOS-style line endings
  • "crlf" - Use Carraige-return, line-feed line endings
filtered Flag used to determine if the file is filtered. The default value is false.

dependencySet

Defines a dependency set
Element Description
outputFileNameMapping Specify the mapping pattern for all dependencies included in this assembly. Default is ${artifactId}-${version}.${extension}. The default value is ${artifactId}-${version}.${extension}.
unpack If set to true, this property will unpack all dependencies into the specified output directory. When set to false dependencies will be includes as archives (jars). Default value is false. The default value is false.
scope Specifies the dependency scope for this dependencySet. Default scope value is "runtime". The default value is runtime.
outputDirectory Specifies the output directory relative to the root of the root directory of the assembly. For example, "log" will put the specified files in the log directory.
includes When <include> subelements are present, they define a set of files and directory to include.
excludes When <exclude> subelements are present, they define a set of files and directory to exclude.
fileMode Similar to a UNIX permission. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0644 translates to User read-write, Group and Other read-only. (more on unix-style permissions) The default value is 0644.
directoryMode Similar to a UNIX permission. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0644 translates to User read-write, Group and Other read-only. (more on unix-style permissions) The default value is 0755.

repository

Defines a Maven repository to be included in the assembly.
Element Description
includeMetadata If set to true, this property will trigger the creation of repository metadata which will allow the repository to be used as a functional remote repository. The default value is false.
groupVersionAlignments Align a group to a version or an individual artifact.
outputDirectory Specifies the output directory relative to the root of the root directory of the assembly. For example, "log" will put the specified files in the log directory.
includes When <include> subelements are present, they define a set of files and directory to include.
excludes When <exclude> subelements are present, they define a set of files and directory to exclude.
fileMode Similar to a UNIX permission. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0644 translates to User read-write, Group and Other read-only. (more on unix-style permissions) The default value is 0644.
directoryMode Similar to a UNIX permission. Format: (User)(Group)(Other) where each component is a sum of Read = 4, Write = 2, and Execute = 1. For example, the default value of 0644 translates to User read-write, Group and Other read-only. (more on unix-style permissions) The default value is 0755.

groupVersionAlignment

Defines a Maven repository to be included in the assembly.
Element Description
id The groupId for which you want to align the versions.
version The version you want to align this group to.
excludes Artifact Ids of the artifacts you want excluded from version alignment.