The default manifest created by Maven Archiver will contain the following bits of information:
Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven ${maven.version} Built-By: ${user.name} Build-Jdk: ${java.version}
Starting with version 2.1, Maven Archiver no longer creates the Implementation and Specification details in the manifest by default. If you want them in your manifest you have to say so explicitly in your configuration.
Note: Because this is a recent change in Maven Archiver, different plugins may or may not have started using it yet. Please check the documentation for the plugin you want to use. In this example we use maven-jar-plugin 2.1 which was the first version of that plugin to use this new feature.
<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.1</version> ... <configuration> <archive> <manifest> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries> </manifest> </archive> </configuration> ... </plugin> </plugins> </build> ... </project>
The resulting manifest would contain these pieces of information:
Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven ${maven.version} Built-By: ${user.name} Build-Jdk: ${java.version} Specification-Title: ${project.name} Specification-Version: ${project.version} Specification-Vendor: ${project.organization.name} Implementation-Title: ${project.name} Implementation-Version: ${project.version} Implementation-Vendor-Id: ${project.groupId} Implementation-Vendor: ${project.organization.name} Implementation-URL: ${project.url}
Note: If your pom.xml does not have an <organization>/<name> element, then the Specification-Vendor and Implementation-Vendor entries will not be in the manifest.
Note: If your pom.xml does not have a <url> element, referenced through interpolation, then the Implementation-URL entry will not be in the manifest.
Note: If your pom.xml does not have a <name> element, then the Specification-Title and Implementation-Title entries will have "Unnamed - ${project.groupId}:${project.artifactId}:${project.version}" as their value.