Here is a typical manifest file generated by the maven-jar-plugin-1.8
:
Manifest-Version: 1.0 Ant-Version: Apache Ant 1.6.5 Created-By: 1.4.2_10-b03 (Sun Microsystems Inc.) Built-By: lukas Maven-Version: 1.1-beta-3-SNAPSHOT Name: org/apache/maven Extension-name: org.apache.maven Specification-Title: Create jar files Specification-Vendor: Apache Software Foundation Specification-Version: 1.8 Implementation-Title: org.apache.maven Implementation-Vendor: Apache Software Foundation Implementation-Version: 1.8-SNAPSHOT
Note that the structure was different and probably not compatible in older versions of the plugin, see MPJAR-36.
Attribute | Default value |
---|---|
Created-By |
The java version used to generate the manifest file |
Built-By |
${user.name} |
Maven-Version |
${maven.application.version} |
Class-Path |
See the maven.jar.manifest.classpath.add
property.
|
Main-Class |
See the maven.jar.mainclass
property.
|
Extension-List |
See the maven.jar.manifest.extensions.add
property.
|
Name |
${pom.package} with "." (dot) replaced by "/" (slash) |
Extension-name |
${pom.package} |
Specification-Title |
${pom.shortDescription} (trimmed to 46 characters) |
Specification-Vendor |
${pom.organization.name} |
Specification-Version |
This is constructed from ${pom.currentVersion} in the following way:
first any occurence of the string "-SNAPSHOT " is chopped off,
the rest is then tokenized with a delimiter "." (dot), and
up to three tokens are kept. Note that according to
Sun's specification
this must be a number to compare, so if your ${pom.currentVersion} contains any
non-digit character (apart from "."), the resulting manifest will not be valid.
You should then override this default (see below).
|
Implementation-Title |
${pom.package} |
Implementation-Vendor |
${pom.organization.name} |
Implementation-Version |
${pom.currentVersion} |
Any of the above default values can be overridden by specifying
a custom manifest file via the maven.jar.manifest
property. Note that values in manifest
sections (separated from the main section by a blank line) can
only be overridden by also specifying the section name.
For instance, even if you only want to override the
Specification-Version
in the example above,
you need at least the following in your custom manifest:
Name: org/apache/maven Specification-Version: 1.8.0