maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Markus KARG (JIRA)" <j...@codehaus.org>
Subject [jira] (MJAR-156) Classpath created in manifest contains timestamp instead of the suffix "-SNAPSHOT"
Date Tue, 09 Oct 2012 07:10:36 GMT

    [ https://jira.codehaus.org/browse/MJAR-156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=311083#comment-311083
] 

Markus KARG commented on MJAR-156:
----------------------------------

A possible, acceptable workaround seems to be to explicitly specify that the -SNAPSHOT suffix
has not to be replaced:

<manifest>
	<addClasspath>true</addClasspath>
	<!-- Workaround for Maven bug #MJAR-156 (https://jira.codehaus.org/browse/MJAR-156) -->
	<useUniqueVersions>false</useUniqueVersions>
</manifest>

                
> Classpath created in manifest contains timestamp instead of  the suffix "-SNAPSHOT"
> -----------------------------------------------------------------------------------
>
>                 Key: MJAR-156
>                 URL: https://jira.codehaus.org/browse/MJAR-156
>             Project: Maven 2.x JAR Plugin
>          Issue Type: Bug
>    Affects Versions: 2.3.2, 2.4
>         Environment: Win7 Pro SP1 (64 Bit), JDK 1.6.0_26 (32 Bit)
>            Reporter: Markus KARG
>         Attachments: Sample.zip
>
>
> Sometimes the JAR packager replaces a dependency's "-SNAPSHOT" suffix by a timestamp
when calculating a corresponding "Class-Path:"-entry for all dependencies into the MANIFEST.MF
file of the packaged JAR. This is problematic, as typically the dependency shipped together
with the created JAR will NOT be renamed, but shipped WITH the suffix "-SNAPSHOT". The created
JAR will at runtime not find the JAR due to the wrong suffix then ("ClassNotFoundException"
will happen for all content in the dependency, obviously). Strange but true, this seem to
happen only for SOME JARs and only in SOME particular situations, but I was not able to identify
the root causes.
> Attached is a tiny MVN project containing a pom that will produce this behaviour.
> * How to demonstrate:
> - Unpack attached JAR
> - Manually deploy the dependency "webdav-jaxrs-1.2-SNAPSHOT.jar" found in subfolder "install-this-in-repo"
into the local repository.
> - mvn clean package
> - "target\sample-1.0.0-SNAPSHOT.jar" contains wrong MANIFEST.MF Class-Path: entry now:
> Class-Path: webdav-jaxrs-1.2-20120621.141509-35.jar jsr311-api-1.1.1.jar
> (Sample output contained in ZIP\target!)
> Obviously "-SNAPSHOT" was replaced by "20120621.141509-35", what induces the problem
that the actual dependency is not found, as its file ends still on "-SNAPSHOT" (by intention!).
This scenario typically happens when both files end up in an EAR for example.
> * Expected Result:
> - Class-Path: webdav-jaxrs-1.2-SNAPSHOT.jar jsr311-api-1.1.1.jar
> * Actual Result:
> - Class-Path: webdav-jaxrs-1.2-20120621.141509-35.jar jsr311-api-1.1.1.jar
> * Workaround:
> - Provide a static MANIFEST.MF file. Drawback: Changing dependency induces manual corrections
to the static file.
> - Fix the entry manually after each build. Drawback: Hard to automate this.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message