Actually, Mitch, I think you've just been bitten by https://
issues.apache.org/jira/browse/IVY-1171, which I recently fixed and
which will should be included in the next release of Ivy.
HTH,
Matt
On Mar 13, 2010, at 9:45 PM, Mitch Gitman wrote:
I'm trying to figure out if this is the expected behavior or it's a
bug. If
it is a bug, please forgive me for reporting what may already be
well-known.
I'm using Ivy 2.1.0.
In an ivy.xml file, the conf element's visibility attribute has a
default
value of "public". See:
http://ant.apache.org/ivy/history/latest-milestone/ivyfile/conf.html
So specifying this:
<conf name="default" />
should be no different from specifying this:
<conf name="default" visibility="public" />
Now, I have an artifact associated with the default conf:
<artifact name="foo" type="jar" conf="default"/>
Then on my ivy:publish Ant task, I specify: conf="*(public)"
This is saying I only want to publish the public confs, not the
private
ones.
With this restriction in place, if I explicitly specify
visibility="public",
that artifact gets published. But if I don't, it doesn't get
published. So
here's a situation where the default value is not being recognized
as the
default.
By the way, if I take a look at the Ivy file that has been
published to the
repository, I still see:
<artifact name="foo" type="jar" conf="default"/>
In my opinion, it's important that the visibility attribute's
default value
of public be recognized in all cases where it's applicable,
especially this
one I've described:
A. A more rigorous, and arguably more correct, practice is to not
publish
private confs.
B. Anyone adhering to this practice shouldn't have to be defensive
about
always having to remember to specify visibility="public" on their conf
elements.
And I can attest, when one does run into this problem, it takes a
good deal
of digging to get to the root.