Using ${artifcactId}-Extention-Name in MANIFEST file can create invalid
MANIFEST files
--------------------------------------------------------------------------------------
Key: MJAR-102
URL: http://jira.codehaus.org/browse/MJAR-102
Project: Maven 2.x Jar Plugin
Issue Type: Bug
Affects Versions: 2.2, 2.1, 2.0
Environment: Java HotSpot(TM) Client VM (build 1.5.0_13-121)
Reporter: Todd Caine
If you have a maven dependency on an something with an artifactId that contains
a '.' in it, it creates an illegal manifest file when trying to create an
executable jar file (java -jar foo.jar).
Exception in thread "main" java.io.IOException: invalid header field name:
geronimo-jms_1.1_spec-Extension-Name
at java.util.jar.Attributes.read(Attributes.java:409)
at java.util.jar.Manifest.read(Manifest.java:167)
at java.util.jar.Manifest.<init>(Manifest.java:52)
at java.util.jar.JarFile.getManifestFromReference(JarFile.java:158)
at java.util.jar.JarFile.getManifest(JarFile.java:145)
Here's my configuration:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>my.class.Test</mainClass>
<addClasspath>true</addClasspath>
<addExtensions>true</addExtensions>
<classpathPrefix>./lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
I added the following dependency:
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
</dependency>
When the maven-archiver tries to create a manifest file with the JARs
dependencies it adds the following to the META-INF/MANIFEST.MF file:
geronimo-jms_1.1_spec-Extension-Name: geronimo-jms_1.1_spec
geronimo-jms_1.1_spec-Implementation-Version: 1.0
After digging around a bit it turns out that '.' is an illegal character in the
"Extension-Name" and "Implementaion-Version" header fields, which leads to the
following exception when I try to run "java -jar Test.jar"
java.io.IOException: invalid header field name:
geronimo-jms_1.1_spec-Extension-Name
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira