I'm trying to use the ivy:install task to install Google Guava (and its
dependencies) into a local filesystem-based repository.
My ivy settings.xml file defines the repo like this:
<filesystem name="local-repository">
<ivy
pattern="${ivy.settings.dir}/repo/[organisation]/[module]/ivys/ivy-[revision].xml"/>
<artifact
pattern="${ivy.settings.dir}/repo/[organisation]/[module]/[conf]/[type]s/[artifact]-[revision].[ext]"/>
</filesystem>
When I run the ivy:install task to install com.google.guava:guava:11.0.2,
everything goes smoothly. Dependencies are detected, downloaded and placed
on disk, along with the ivy.xml files generated from maven .pom files.
I'll also need guava-gwt for some projects, so I continue by also running
ivy:install for com.google.guava:guava-gwt:11.0.2.
However, this results in
repo/com.google.guava/guava/default/jars/guava-11.0.2.jar being
overwritten! In fact, it's getting overwritten by a copy of
repo/com.google.guava/guava/default/sources/guava-11.0.2.jar, and I'm not
sure why.
Theories:
1. I've somehow misconfigured my local ivy repository which is resulting
in name collisions.
2. There's something in the guava-gwt .pom file that's causing this to
happen in Ivy.
3. There's a bug in Ivy that can't handle depending on sources in .pom
files.
For #1, I tried reading the ivy documentation re: configuring filesystem
repositories. My configuration was already taken from the sample in the
documentation. I thought maybe the docs skimmed over some details, but
didn't find any more documentation on patterns. I ended up reading some
source code and coming to the conclusion that nope, I'm already specifying
all the pattern elements that I can.
For #2, I read the .pom in question[1] but I don't see anything out of the
ordinary. Guava-gwt does depend on guava with classifier "sources" but
that seems to be provided by the source jar already installed in the repo.
#3 seems unlikely. Surely other people are depending on source
configurations and would've found that already?
I guess I should mention this is Ivy 2.2.0, Ant 1.8.2, Sun/Oracle Java
1.6.0_26
Thanks in advance for the help! :)
[1]:
http://search.maven.org/remotecontent?filepath=com/google/guava/guava-gwt/11.0.2/guava-gwt-11.0.2.pom