I have an ivy.xml file with some confs like so:
<conf name="abstract" visibility="private" />
<conf name="concrete" extends="abstract" visibility="public" />
Note that I have a public Ivy conf extending a private one. Can anyone say
if I'm doing something valid or invalid--and then explain conceptually why?
I suspect the answer is invalid because when I attempt to do an Ivy resolve
on this published Ivy module, I get an error message like so:
configuration not public in net.nilistics#test-module;1.0: 'abstract'. It
was required from net.nilistics#test-module-caller;working abstract
I've traced this error message to this passage in the private
*handleConfiguration
*method of *IvyNode*:
} else if (shouldBePublic && !isRoot()
&& c.getVisibility() !=
Configuration.Visibility.PUBLIC) {
confsToFetch.remove(conf);
if (isConfRequiredByMergedUsageOnly(rootModuleConf,
conf)) {
Message.verbose(
"configuration required by evicted revision is
not visible in "
+ "selected revision. skipping " + conf + " in "
+ this);
} else {
problem = new RuntimeException("configuration not
public in " + this + ": '"
+ c + "'. It was required from " + parent + " "
+ parentConf);
}
return false;
}
I am using Ivy 2.1.0-rc2.