[英]Grails dependency nightmare with Lucene
我最近将Elastic Search从0.90.0更新到1.3.2,现在与另一个依赖项使用的Lucene版本发生冲突。 该方案如下所示:
罐A使用Lucene 4.9.0罐B使用Lucene 3.3.0
关键是我得到一个java.lang.VerifyError,因为B代码覆盖了Lucene类的final方法,该方法在4.9.0版本中不是final。
我尝试了这个没有成功:
compile ('A')
compile ('B')
compile ('org.apache.lucene:lucene-core:4.9.0') {
excludes(B)
}
compile ('org.apache.lucene:lucene-analyzers-common:4.9.0') {
excludes(B)
}
我不知道该怎么办,这有什么线索吗?
谢谢!
假设您需要最新版本的Lucene,则排除的对象实际上是向后的。
您对B的声明应如下所示:
compile ('B') {
excludes "lucene-core", "lucene-analyzers-common"
}
在该列表中也包括任何其他可能冲突的lucene jars。
如果您没有在代码中专门使用任何Lucene库(除了elasticsearch插件之外),则可以删除显式Lucene声明。
我对Lucene的了解还不足以告诉您4.9.0是否与3.3.0向后兼容,但是此解决方案至少应确保4.9.0是项目的类路径中的内容,而不是 3.3.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.