[ 
http://jira.codehaus.org/browse/MGROOVY-180?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=160756#action_160756
 ] 

Jason Smith commented on MGROOVY-180:
-------------------------------------

Note that this isn't a problem if you don't specify the gmaven-runtime-1.x in 
the set of dependencies.  Most applications should use 
org.codehaus.groovy:groovy:??? instead of the gmaven-runtime, which puts 
unnecessary JAR files into the final application.  

Another workaround is to simply turn off artifact registration in the manifest, 
which doesn't seem to hurt anything, and makes me wonder why we have that 
feature anyway.  :-)

> Artifact name for "gmaven-runtime-1.x" causes exception when running Jar 
> under specific conditions.
> ---------------------------------------------------------------------------------------------------
>
>                 Key: MGROOVY-180
>                 URL: http://jira.codehaus.org/browse/MGROOVY-180
>             Project: GMaven
>          Issue Type: Bug
>          Components: tools
>    Affects Versions: 1.0-rc-3
>         Environment: -
>            Reporter: Jason Smith
>            Assignee: Jason Dillon
>
> > I have the following plugin definition for defining a MANIFEST in my
> > JAR file.
> >
> > Note that <addExtensions/> is "true".
> >            <plugin>
> >                <groupId>org.apache.maven.plugins</groupId>
> >                <artifactId>maven-jar-plugin</artifactId>
> >                <configuration>
> >                    <archive>
> >                        <index>true</index>
> >                        <manifest>
> >
> > <mainClass>com.infotrustgroup.util.commandline.Main</mainClass>
> >
> > <packageName>com.infotrustgroup.buildtools</packageName>
> >                            <addClasspath>true</addClasspath>
> >                            <addExtensions>true</addExtensions>
> >                        </manifest>
> >                        <manifestEntries>
> >                            <mode>development</mode>
> >                            <url>${pom.url}</url>
> >                            <key>value</key>
> >                        </manifestEntries>
> >                    </archive>
> >                </configuration>
> >            </plugin>
> >
> > This adds entries for all the extension libraries into the JAR file,
> > like this:
> >    ...
> >    joda-time-Extension-Name: joda-time
> >    joda-time-Implementation-Version: 1.5.2
> >    gmaven-runtime-1.5-Extension-Name: gmaven-runtime-1.5
> >    gmaven-runtime-1.5-Implementation-Version: 1.0-rc-3
> >    slf4j-api-Extension-Name: slf4j-api
> >    slf4j-api-Implementation-Version: 1.5.0
> >    gmaven-feature-support-Extension-Name: gmaven-feature-support
> >    gmaven-feature-support-Implementation-Version: 1.0-rc-3
> >    gmaven-feature-api-Extension-Name: gmaven-feature-api
> >    ...
> >
> > Now when I run Java with -jar, like this:
> >    java -jar "%~dp0\lib\BuildTools-1.0.6-SNAPSHOT.jar" "%~f0"
> > com.infotrustgroup.buildtools.commands.Build %*
> >
> > I get the following exception:
> >    Exception in thread "main" java.io.IOException: invalid header
> > field name: gmaven-runtime-1.5-Extension-Name
> >        at java.util.jar.Attributes.read(Attributes.java:416)
> >        at java.util.jar.Manifest.read(Manifest.java:182)
> >        at java.util.jar.Manifest.<init>(Manifest.java:52)
> >        at
> > java.util.jar.JarFile.getManifestFromReference(JarFile.java:160)
> >        at java.util.jar.JarFile.getManifest(JarFile.java:146)
> >
> > I believe this is happening because of the dot ('.', or period) in the 
> > name. If I use
> > gmaven-runtime-default, this does not happen.  If set <addExtensions/
> > > to "false", it also does not happen.  So this is fairly easy to
> > work around, but it is also pretty difficult to troubleshoot unless
> > you know where to look.
> >
> > Note that the code in the stack trace isn't mine.  This is happening
> > in Java, before my code ever gets called.
> >
> > This one is pretty hard to produce at random, though it is
> > repeatable.  You have to be running compiled Groovy from within a
> > JAR where you have set up the MANIFEST with extensions on.
> >
> > One suggestion would be to call the artifact gmaven-runtime and set
> > the version to 1.5, 1.6, whatever - the version of Groovy, plus
> > maybe a point version and RC status.  That would work, and it would
> > not break the Java jarring mechanism.

-- 
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

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to