[ https://jira.codehaus.org/browse/MJAR-156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=306882#comment-306882 ]
Heiko Kopp commented on MJAR-156: --------------------------------- I'm having this problem too and the workaround is simply a workaround. This should be fixed as soon as possible, as it is not obvious why the application is not working and generates ClassNotFoundExceptions. Luckily I've checked the generated MANIFEST.MF. > 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