Как я могу создать загрузчик классов из пользовательской конфигурации в gradle?
Я определил пользовательскую конфигурацию и зависимости.
repositories {
mavenCentral()
}
configurations {
myConfig
}
dependencies {
myConfig 'org.foo:foo:+'
}
Как создать загрузчик классов для динамической загрузки класса?
task myTask {
def classLoader = configurations.myConfig.????
def foo = Class.forName( "org.foo.Foo", true, classLoader ).newInstance();
}
1 ответ:
Теперь я нашел это решение. Я надеюсь, что есть более хорошее решение.
def classLoader = getClassLoader( configurations.myConfig ) ClassLoader getClassLoader( Configuration config ) { ArrayList urls = new ArrayList() config.files.each { File file -> urls += file.toURI().toURL() } return new URLClassLoader( urls.toArray(new URL[0]) ); }