Исключение: java .lang.IllegalArgumentException: класс SPI типа org. apache .lucene.codecs.Code c с именем 'Lucene410' не существует - PullRequest
0 голосов
/ 14 января 2020

Я работаю с многомодульным проектом 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 (Community Edition)
  • Сборка # I C -193.5662.53, построена 18 декабря 2019 г.
  • Версия времени выполнения: 11-ea + 121 amd64
  • ВМ: виртуальная машина OpenJDK с 64-разрядным сервером от JetBrains sro
  • Linux 4.15.0-74-generi c
  • G C: ParNew, ConcurrentMarkSweep
  • Память: 1204M
  • Ядра : 6

Реестр:

  • Неупакованные плагины: DBN, Плагин Lombook, OdpsStudio, com.jetbrains.ChooseRuntime, marcglasberg.HibernateInspectionsPlugin, org.dnltsk.mapfileplugin. org.jetbrains. kotlin

Версия этой библиотеки отображается в дереве проекта. И не только ядро.

enter image description here

Добавление файла "org. apache .lucene.codecs.Code c" в проект, как рекомендовано здесь , здесь и здесь , при добавлении явной зависимости (которая по какой-то причине не отображается в дереве внешней библиотеки) в 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. Финал" включительно. И ничего из версии "5.6.6. Финал" и новее снова не появляется.

1 Ответ

0 голосов
/ 29 марта 2020

Если вам не нужна забота о сохраненных индексах, вы можете просто удалить содержимое системной папки, в которой хранятся индексы. <property name="hibernate.search.default.indexBase" value="/var/lucene/indexes"/> В моем случае это была папка / var / lucene / indexes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...