Maven Archiver

The Maven Archiver is mainly used by plugins to handle packaging.

<archive>
  <addMavenDescriptor/>
  <compress/>
  <forced/>
  <index/>
  <manifest>
    <addClasspath/>
    <addDefaultImplementationEntries/>
    <addDefaultSpecificationEntries/>
    <addExtensions/>
    <classpathMavenRepositoryLayout/>
    <classpathPrefix/>
    <mainClass/>
    <packageName/>
  </manifest>
  <manifestEntries>
    <key>value</key>
  </manifestEntries>
  <manifestFile/>
  <manifestSections>
    <manifestSection>
      <name/>
      <manifestEntries>
        <key>value</key>
      </manifestEntries>
    <manifestSection/>
  </manifestSections>
  <pomPropertiesFile/>
</archive>
      

archive

Element Description Type Since
addMavenDescriptor Whether the generated archive will contain these two Maven files:
  • The pom file, located in the archive in META-INF/maven/${groupId}/${artifactId}/pom.xml
  • A pom.properties file, located in the archive in META-INF/maven/${groupId}/${artifactId}/pom.properties
The default value is true.
boolean
compress Activate compression for the archive. The default value is true. boolean
forced Whether recreating the archive is forced (default) or not. Setting this option to false, means that the archiver should compare the timestamps of included files with the timestamp of the target archive and rebuild the archive, only if the latter timestamp precedes the former timestamps. Checking for timestamps will typically offer a performance gain (in particular, if the following steps in a build can be suppressed, if an archive isn't recrated) on the cost that you get inaccurate results from time to time. In particular, removal of source files won't be detected.

An archiver doesn't necessarily support checks for uptodate. If so, setting this option to true will simply be ignored.

The default value is true.
boolean 2.2
index Whether the generated archive will contain an INDEX.LIST file. The default value is false. boolean
manifest
manifestEntries A list of key/value pairs to add to the manifest. Map
manifestFile With this you can supply your own manifest file. File
manifestSections
pomPropertiesFile Use this to override the auto generated pom.properties file (only if addMavenDescriptor is set to true) File 2.3

manifest

Element Description Type Since
addClasspath Whether to generate a Class-Path manifest entry. The default value is false. boolean
addDefaultImplementationEntries If the manifest will contain these entries:
Implementation-Title: ${pom.name}
Implementation-Version: ${pom.version}
Implementation-Vendor-Id: ${pom.groupId}
Implementation-Vendor: ${pom.organization.name}
              
The default value is false.
boolean 2.1
addDefaultSpecificationEntries If the manifest will contain these entries:
Specification-Title: ${pom.name}
Specification-Version: ${pom.version}
Specification-Vendor: ${pom.organization.name}
              
The default value is false.
boolean 2.1
addExtensions Whether to generate an Extension-List manifest entry. The default value is false. boolean
classpathMavenRepositoryLayout The generated Class-Path entry will contains paths that follow the Maven 2 repository layout: ${groupId}/${artifactId}/${version}/${fileName}. The default value is false. boolean 2.3
classpathPrefix A text that will be prefixed to all your Class-Path entries. The default value is "". String
mainClass The Main-Class manifest entry. String
packageName Package manifest entry. String

manifestSection

Element Description Type Since
name The name of the section. String
manifestEntries A list of key/value pairs to add to the manifest. Map

pom.properties content

The auto generated pom.properties file will contain the following content:

version=${pom.version}
groupId=${pom.groupId}
artifactId=${pom.artifactId}