Nik wrote on 04/28/2009 12:14 AM:
Here is an example ivy.xml files for one of my base packages:
<ivy-module version="1.0">
<configurations>
<conf name="build" visibility="private" />
<conf name="default" />
</configurations>
I've found that if I set it to conf="build", then even though a JAR is
published to the repository,
other projects don't use it in their resolve process. Changing the value
to conf="default" or conf="*" fixes this.
Your "build" conf is private, so no other modules can use it. Fix
this, and your build->* conf-mapping will work.
Q: Should I stick with conf="build" here, and then make my calling build
use the "build" conf in their resolve?
Q: Should I just stick with conf="default" in the <artifacts> element of
the depended-on package?
Q: Is it better (and more correct even) to use conf="*" in the
<artifacts> element?
Q: Or should I enumerate the valid configs as in: conf="build, default"?
You should definitely retain a default conf, and make sure a sensible
set of artifacts is published to that conf, so that the naive
dependency works as expected. Then add configurations for specific
use-cases, like build, as appropriate. You may want to use the same
conf names as the maven plugin, such as "compile", "runtime", etc. I
find this makes transitive dependency conf-mapping easier when using a
mix of enterprise and maven dependencies.
Thanks,
---
Kirby Files
Software Engineer
Masergy Communications
[email protected]