java - 异常:java.lang.IllegalArgumentException:不存在名为“Lucene410”的 org.apache.lucene.codecs.Codec 类型的 SPI 类
问题描述
我使用一个多模块 gradle 项目(12 个模块)。我继承了该项目,我需要更新其中使用的一些库的版本。
我无法理解此错误的原因:
... 67 more
Caused by: java.lang.IllegalArgumentException: An SPI class of type org.apache.lucene.codecs.Codec with name 'Lucene410' does not exist. You need to add the corresponding JAR file supporting this SPI to your classpath. The current classpath supports the following names: [Lucene54]
at org.apache.lucene.util.NamedSPILoader.lookup(NamedSPILoader.java:114)
at org.apache.lucene.codecs.Codec.forName(Codec.java:113)
at org.apache.lucene.index.SegmentInfos.readCodec(SegmentInfos.java:469)
... 81 more
最初,对 Lucena 库的依赖显然没有包含在项目中。然而,在几个地方有一个直接链接到它的类:
org.apache.lucene.search.Query lQuery = queryBuilder.keyword().onFields("name", "code").matching(name).createQuery();
我有:
- IntelliJ IDEA 2019.3.1(社区版)
- Build #IC-193.5662.53,建于 2019 年 12 月 18 日
- 运行时版本:11-ea+121 amd64
- 虚拟机:JetBrains sro 的 OpenJDK 64 位服务器虚拟机
- Linux 4.15.0-74-通用
- GC:ParNew、ConcurrentMarkSweep
- 内存:1204M
- 核心:6
注册表:
- 非捆绑插件:DBN、Lombook 插件、OdpsStudio、com.jetbrains.ChooseRuntime、marcglasberg.HibernateInspectionsPlugin、org.dnltsk.mapfileplugin、org.jetbrains.kotlin
该库的一个版本在项目树中可见。而不仅仅是核心。
按照此处、此处和此处的建议,将“org.apache.lucene.codecs.Codec”文件添加到项目中,同时将显式依赖项(由于某种原因未出现在外部库树中)添加到 build.gradle模块,不提供任何东西。
编辑 1
这个依赖是从 Hibernate 库中检索的:
compile group: 'org.hibernate', name: 'hibernate-search-orm', version: '5.11.4.Final'
如果您用旧版本替换新版本,那么问题就会消失:
compile group: 'org.hibernate', name: 'hibernate-search', version: '5.3.0.Final'
但我想了解如何使用更新的版本。
编辑 2
仅在库版本“5.5.8.Final”(含)之前不会引发此异常。而且,“5.6.6.Final”和更新版本中的任何内容都不会再次出现。
解决方案
如果您不需要关心存储的索引,您可以简单地删除存储索引的系统文件夹的内容。
<property name="hibernate.search.default.indexBase" value="/var/lucene/indexes"/>
就我而言,它是 /var/lucene/indexes 文件夹
推荐阅读
- c# - C#:Moq System.NotSupportedException:无法将佣金问题应用于组件,因为它似乎是无目标代理
- javascript - 如何使单击的文本出现在表单字段上?
- go - 从数字数组中加/减值的最快方法是什么?
- openssl - SSL_get_error() 返回值 5
- python-3.x - Cloud Functions HTTP 触发器崩溃
- python - 我可以导入函数但不能导入错误的类“AttributeError:模块'XXXX'没有属性'YYYY'”
- css - 如何制作具有固定页眉和页脚以及可滚动内容的 flex 布局?
- mcmc - 无法从 Vehtari 论文中复制 RStan ESS 代码
- c++ - 这是空间复杂性的奇怪问题。有人可以提供任何见解吗?
- ios - 如何删除 NavigationBar 的右空间?