So I have got my Maven build deploying both Java5 and Java6 versions to my snapshot repo (Nexus). I do this with build profiles and classifiers. All is good in the Maven side of things.
However, if I try to resolve the Java5 dependency from my IVY based project it will not work if the most recent Maven deploy was for the Java6 profile/classifier. I guess this is because the timestamp in maven-metadata.xml
picks out the Java6 version. It does work if the most recent deploy was for Java5.
This is the resolver:
<ibiblio name="snapshot-repo-name"
m2compatible="true"
root="snapshot-repo-root"
pattern="[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"
usepoms="true"
checkmodified="true"
changingPattern=".*SNAPSHOT"/>
Deploying Java6 of the dependency therefore breaks the build of IVY-built application.
Is it the resolution that is failing or the retrieve? (Retrieve does an implicit resolve).
My build once failed because the following pattern wasn't unique (Needed a classifier in the name pattern to cater for source and javadoc artifacts):
The work-around is to mark the Maven snapshot as non-unique versions in the
<distributionManagement/>
element. That is, there are no longer timestamped versions in the Maven snapshot repository.