2016-03-06 8 views
5

mam groovy skrypt tak:Pierwsze klasy Not Found: org.apache.ivy.core.report.ResolveReport podczas korzystania GroovyClassLoader w Javie

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

class MyCsvParser { 

} 

I chcę, aby załadować tę klasę w mojej aplikacji Java przez GroovyClassLoader. Ale @Grab jakoś daje w drodze wyjątku bluszcz:

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

Stos:

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 

Kiedy zakomentuj @Grab wszystko działa dobrze. Jak mogę włączyć Winogrona w GroovyClassLoader?

+0

Ten plik jest częścią Apache Ivy Framework - http://javasearch.buggybread.com/home.php?keyword=org.apache.ivy.core .report.ResolveReport –

Odpowiedz

9

Powinieneś dodać zależność od bluszczu. Nie jest ona domyślnie dodawana, ponieważ została zadeklarowana jako nieprzechodnia. Ivy jest biblioteka, która zarządza zależności ładowane przez @Grab:

<dependency> 
    <groupId>org.apache.ivy</groupId> 
    <artifactId>ivy</artifactId> 
    <version>2.4.0</version> 
</dependency> 
Powiązane problemy