Hello all,
I am using Maven 3 with Nexus 2.
I am building a cli tool (let's call it cli) , which has dependencies on
some other libraries (let's call them dependencyA and dependencyB)
To make my cli tool work in every environment, I rely on the manifest
classpath, generated with :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
and then I package everything (cli and its dependencies) using an assembly
my launcher script looks like :
java -jar cli*.jar (the * is there so that I won't need to update the
script for any versions)
If I build everything locally, in version 1.1.0-SNAPSHOT, here is the
manifest classpath entry :
Class-Path: dependencyA-1.1.0-SNAPSHOT.jar dependencyB-1.1.0-S
NAPSHOT.jar slf4j-jdk14-1.6.6.jar slf4j-api-1.6.6.jar
locally, everything is fine
Now, if I download the assembly, built by a CI tool and published to Nexus,
the manifest is still the same, but look at the names of the dependencies :
~> ls lib/
cli-1.1.0-20130105.224257-7.jar dependencyA-1.1.0-20130105.224257-7.jar
dependencyB-1.1.0-20130105.224257-7.jar
As you can imagine, the cli won't find it's dependencies since their
version does not match any more the manifest's (SNAPSHOT in the manifest,
1.1.0-20130105.224257-7 is what we have)
It seems like this issue was fixed some time ago :
http://jira.codehaus.org/browse/MJAR-28
Is is a regression ?
Thanks a lot for your help!
Anthony