我已经定义了自定义配置和依赖项。

repositories {
    mavenCentral()
}
configurations {
    myConfig
}
dependencies {
    myConfig   'org.foo:foo:+'
}

如何创建 ClassLoader 来动态加载类?
task myTask {
    def classLoader = configurations.myConfig.????
    def foo = Class.forName( "org.foo.Foo", true, classLoader ).newInstance();
}

最佳答案

我现在找到了这个解决方案。我希望有更好的解决方案。

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]) );
}

关于class - 如何从 gradle 中的自定义配置创建 ClassLoader?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29431386/

10-10 02:53