[英]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.