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]

Reply via email to