找不到获取类:在Java中使用GroovyClassLoader时org.apache.ivy.core.report.ResolveReport

找不到获取类:在Java中使用GroovyClassLoader时org.apache.ivy.core.report.ResolveReport,java,groovy,Java,Groovy,我有这样一个groovy脚本: @Grab('com.univocity:univocity-parsers:2.0.0') import com.univocity.parsers.csv.*; class MyCsvParser { } 我想通过GroovyClassLoader在java应用程序中加载这个类。但是@Grab在某种程度上产生了常春藤例外: SomeJavaClass { void someMethod() { String script = F

我有这样一个groovy脚本:

@Grab('com.univocity:univocity-parsers:2.0.0')
import com.univocity.parsers.csv.*;

class MyCsvParser {

}
我想通过
GroovyClassLoader
在java应用程序中加载这个类。但是
@Grab
在某种程度上产生了常春藤例外:

SomeJavaClass {
    void someMethod() {
         String script = FileUtils.readFileToString("the groovy File");
         Class c = new GroovyClassLoader(this.getClass().getClassLoader())).parse(script);
    }
}
堆栈:

Caused by: java.lang.ClassNotFoundException: org.apache.ivy.core.report.ResolveReport
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 41 more

当我注释掉
@Grab
时,一切都正常。如何在
GroovyClassLoader
中启用Grapes?

您应该添加常春藤依赖项。默认情况下不会添加它,因为它被声明为不可传递的。Ivy是管理由
@Grab
加载的依赖项的库:

<dependency>
  <groupId>org.apache.ivy</groupId>
  <artifactId>ivy</artifactId>
  <version>2.4.0</version>
</dependency>

org.apache.ivy
常春藤
2.4.0

将此依赖项添加到什么?