I would like the ability to change the default resolver programmatically. For example, from an Ant task. The API exists for this (IvySettings.setDefaultResolver), but it does not work reliably. The fix looks pretty easy.
When you call IvySettings.setDefaultResolver, it changes the value of "defaultResolverName", of type String. However, it doesn't change the cache variable "defaultResolver". So if you've called IvySettings.getDefaultResolver once, it will always return the original value, even if you later try to change it with setDefaultResolver.