У меня была та же проблема, и я получил ответ от Иана Робертса из списка пользователей Grails, который работает для меня:
def myCL = new URLClassLoader([new File(
"${basedir}/lib/the.jar"
).toURI().toURL()] as URL[],
org.apache.ivy.plugins.repository.AbstractRepository.classLoader)
resolver myCL.loadClass('com.whatever.MyResolver').newInstance()
Передача загрузчика классов, который загрузил Ivy в качестве родителя, важна, так что онможет разрешать классы плюща.
Если вам нужно загрузить несколько jar-файлов (поскольку класс, который вы загружаете, зависит от них), поместите все файлы в список следующим образом:
def myCL = new URLClassLoader([
"${basedir}/lib/jar1",
"${basedir}/lib/jar2", // etc.
].collect { new File(it).toURI().toURL() } as URL[],
org.apache.ivy.plugins.repository.AbstractRepository.classLoader)
resolver myCL.loadClass('com.whatever.MyResolver').newInstance()