Hi.
I'm currently evaluating Ivy 2.0.0 for our dependency management. I like what I've seen so far, but now I've run into trouble.
We use JSFUnit for our testcases and we use the snapshot versions.
To make Ivy fetch these dependencies I have the following ivy settings: (the properties file contains only version numbers and repository locations)
And try to fetch jsfunit snapshot with an ivy.xml file:
The following is the output of a run from ant with verbose output:
[ivy:resolve] == resolving dependencies com.blipsystems.analyzer#test-jsf;working@danipc1->org.jboss.jsfunit#jboss-jsfunit;1.0.0.GA-SNAPSHOT [jsfunit->default]
[ivy:resolve] default: Checking cache for: dependency: org.jboss.jsfunit#jboss-jsfunit;1.0.0.GA-SNAPSHOT {jsfunit=[default]}
[ivy:resolve] tried c:\Users\dani.BSH\work\analyzer-trunk/lib/ivy-repo/org.jboss.jsfunit/jboss-jsfunit/ivy-1.0.0.GA-SNAPSHOT.xml
[ivy:resolve] tried c:\Users\dani.BSH\work\analyzer-trunk/lib/ivy-repo/org.jboss.jsfunit/jboss-jsfunit/jboss-jsfunit-1.0.0.GA-SNAPSHOT.jar
[ivy:resolve] project: no ivy file nor artifact found for org.jboss.jsfunit#jboss-jsfunit;1.0.0.GA-SNAPSHOT
[ivy:resolve] don't use cache for org.jboss.jsfunit#jboss-jsfunit;1.0.0.GA-SNAPSHOT: changing=true
[ivy:resolve] CLIENT ERROR: Not Found url=http://repo1.maven.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/maven-metadata.xml
[ivy:resolve] maven-metadata not available: http://repo1.maven.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/maven-metadata.xml
[ivy:resolve] tried http://repo1.maven.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-SNAPSHOT.pom
[ivy:resolve] CLIENT ERROR: Not Found url=http://repo1.maven.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-SNAPSHOT.pom
[ivy:resolve] maven-metadata not available: http://repo1.maven.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/maven-metadata.xml
[ivy:resolve] tried http://repo1.maven.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-SNAPSHOT.jar
[ivy:resolve] CLIENT ERROR: Not Found url=http://repo1.maven.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-SNAPSHOT.jar
[ivy:resolve] central: no ivy file nor artifact found for org.jboss.jsfunit#jboss-jsfunit;1.0.0.GA-SNAPSHOT
[ivy:resolve] don't use cache for org.jboss.jsfunit#jboss-jsfunit;1.0.0.GA-SNAPSHOT: changing=true
[ivy:resolve] [1.0.0.GA-20090129.125050-9] org/jboss/jsfunit#jboss-jsfunit;1.0.0.GA-SNAPSHOT
[ivy:resolve] tried http://snapshots.jboss.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-20090129.125050-9.pom
[ivy:resolve] jboss-snapshot: found md file for org.jboss.jsfunit#jboss-jsfunit;1.0.0.GA-SNAPSHOT
[ivy:resolve] => http://snapshots.jboss.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-20090129.125050-9.pom (1.0.0.GA-SNAPSHOT)
[ivy:resolve] downloading http://snapshots.jboss.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-20090129.125050-9.pom ...
[ivy:resolve] jboss-snapshot: downloading http://snapshots.jboss.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-20090129.125050-9.pom
[ivy:resolve] jboss-snapshot: downloading http://snapshots.jboss.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-20090129.125050-9.pom.sha1
[ivy:resolve] sha1 OK for http://snapshots.jboss.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-20090129.125050-9.pom
[ivy:resolve] [SUCCESSFUL ] org.jboss.jsfunit#jboss-jsfunit;1.0.0.GA-SNAPSHOT!jboss-jsfunit.pom(pom.original) (869ms)
[ivy:resolve] default: Checking cache for: dependency: org.jboss#jboss-parent;3 {}
[ivy:resolve] default: module revision found in cache: org.jboss#jboss-parent;3
[ivy:resolve] tried c:\Users\dani.BSH\work\analyzer-trunk/lib/ivy-repo/org.jboss.jsfunit/jboss-jsfunit/jboss-jsfunit-1.0.0.GA-SNAPSHOT.jar
[ivy:resolve] maven-metadata not available: http://repo1.maven.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/maven-metadata.xml
[ivy:resolve] tried http://repo1.maven.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-SNAPSHOT.jar
[ivy:resolve] tried http://snapshots.jboss.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-20090129.125050-9.jar
[ivy:resolve] CLIENT ERROR: Not Found url=http://snapshots.jboss.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-20090129.125050-9.jar
[ivy:resolve] tried http://snapshots.jboss.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-SNAPSHOT.jar
[ivy:resolve] CLIENT ERROR: Not Found url=http://snapshots.jboss.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-SNAPSHOT.jar
[ivy:resolve] CLIENT ERROR: Not Found url=http://repository.jboss.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/maven-metadata.xml
[ivy:resolve] maven-metadata not available: http://repository.jboss.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/maven-metadata.xml
[ivy:resolve] tried http://repository.jboss.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-SNAPSHOT.jar
[ivy:resolve] CLIENT ERROR: Not Found url=http://repository.jboss.org/maven2/org/jboss/jsfunit/jboss-jsfunit/1.0.0.GA-SNAPSHOT/jboss-jsfunit-1.0.0.GA-SNAPSHOT.jar
[ivy:resolve] problem occured while resolving dependency: org.jboss.jsfunit#jboss-jsfunit;1.0.0.GA-SNAPSHOT {jsfunit=[default]} with jboss-snapshot: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
[ivy:resolve] at java.util.ArrayList.RangeCheck(ArrayList.java:547)
[ivy:resolve] at java.util.ArrayList.get(ArrayList.java:322)
[ivy:resolve] at java.util.Collections$UnmodifiableList.get(Collections.java:1154)
[ivy:resolve] at org.apache.ivy.plugins.resolver.IBiblioResolver.findSnapshotVersion(IBiblioResolver.java:161)
The jboss-jsfunit is a pom declaring only dependencies with no jars, but Ivy apparently expects an jar to download? Ivy identifies the correct snapshot version, but I don't get why it tries to download the jboss-jsfunit jar.
I've tried listing the stuff I need from jsfunit (jboss-jsfunit-core etc) but these poms have a attribute naming jboss-jsfunit and ivy resolves this parent regardless of transitive settings.
Am I doing something wrong or is this a bug in Ivy?
Daniel Nielsen
Software Designer at BLIP Systems A/S
E-mail: daniel.nielsen@blipsystems.com