2013-08-07 36 views
0

以正确的方式使用蒂卡 - 1.4得到这个:什么是添加Apache的蒂卡依赖到Grails项目

Caused by: java.lang.NoClassDefFoundError: net/sf/cglib/core/DebuggingClassWriter 
at net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30) 
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24) 
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216) 
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:144) 
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:116) 
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108) 
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104) 
... 5 more 
Caused by: java.lang.ClassNotFoundException: net.sf.cglib.core.DebuggingClassWriter 
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 

这两行添加到BuildConfig.groovy:

compile ("org.apache.tika:tika-core:1.4") 
compile ("org.apache.tika:tika-parsers:1.4") {excludes "tika-core"} 

如果我不排除从tika-parsers,我得到tika-core(版本1.0拉vorbis-java-tika依赖项)和版本tika-core版本1.4的2个版本。

如果我将tika版本替换为1.3,则异常消失。

更新1

该解决方案似乎作品:

compile ("org.apache.tika:tika-core:${tikaVersion}") 
compile ("org.apache.tika:tika-parsers:${tikaVersion}") { excludes "tika-core", "commons-codec", "commons-logging", "slf4j-api" } 
+0

运行一个'dependency-report'来查看是否存在任何其他工件的差异。 – dmahapatro

+0

已经做到了。没有'cglib'或'asm'代表。 – Archer

+0

你有没有找到解决方案,@archer? –

回答

1

这可能是也可能不是你看到的问题 - 我们正在与蒂卡1.5(快照)工作。该版本引入了asm-debug-all,这是我们麻烦的原因(类似于你的堆栈跟踪)。尝试在你的tika解析器中使用'asm-debug-all'而不是'tika-core'。

+0

这为我解决了这个问题 –

+0

这使得它可以编译,但是当我试图实际使用它时,我得到一个类未找到的错误 –