当前位置: 首页 > 知识库问答 >
问题:

Elasticsearch与项目依赖关系的LUCENE版本冲突

费明诚
2023-03-14

我正在做的项目需要同时使用Elasticsearch和一个依赖项(我没有设计也没有指定它的设计),该依赖项使用Lucene,这两个依赖项之间存在版本冲突。当我尝试启动项目时,下面的错误被吐出来

Exception in thread "main" java.lang.NoSuchFieldError: LUCENE_5_2_1
    at org.elasticsearch.Version.<clinit>(Version.java:39)
    at org.elasticsearch.common.io.stream.StreamOutput.<init>(StreamOutput.java:74)
    at org.elasticsearch.common.io.stream.BytesStreamOutput.<init>(BytesStreamOutput.java:60)
    at org.elasticsearch.common.io.stream.BytesStreamOutput.<init>(BytesStreamOutput.java:57)
    at org.elasticsearch.common.io.stream.BytesStreamOutput.<init>(BytesStreamOutput.java:47)
    at org.elasticsearch.common.xcontent.XContentBuilder.builder(XContentBuilder.java:69)
    at org.elasticsearch.common.settings.Setting.arrayToParsableString(Setting.java:726)
    at org.elasticsearch.common.settings.Setting.lambda$listSetting$26(Setting.java:672)
    at org.elasticsearch.common.settings.Setting$2.getRaw(Setting.java:676)
    at org.elasticsearch.common.settings.Setting.lambda$listSetting$24(Setting.java:660)
    at org.elasticsearch.common.settings.Setting.listSetting(Setting.java:665)
    at org.elasticsearch.common.settings.Setting.listSetting(Setting.java:660)
    at org.elasticsearch.common.network.NetworkService.<clinit>(NetworkService.java:50)
    at org.elasticsearch.client.transport.TransportClient.newPluginService(TransportClient.java:91)
    at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:119)
    at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:247)
    at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:92)
    at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:81)
    at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:71)

任何关于是否可以解决而不能够规定依赖或弹性搜索的设计的想法?

共有1个答案

邢高澹
2023-03-14

最终将错误中提到的Lucene核心依赖版本添加到项目中。build.gradle现在包含编译组:'org.apache.lucene',名称:'lucene-core',版本:'5.2.1',解决了这个问题。

 类似资料:
  • 我在使用commons-codec库时遇到(NoSuchMethodError)问题,这里有我的POM:`http://maven.apache.org/xsd/maven-4.0.0.xsd“>4.0.0 我使用了exclusions和dependencyManagement,但结果是相同的 有人能告诉我更好的解决这个问题的方法吗?

  • 我有一个具有以下依赖项的GWT项目 > Gin 2.1.2依赖于guice 3.0,而owlapi 4.0.2依赖于guice 4.0-beta。 gin在客户端使用,而owlapi在服务器端使用。 我有什么办法才能让这件事成功?我是否可以在保留正常运行的GWT devmode的同时使用依赖关系范围?

  • 我有以下项目结构: 问题: 如何在项目2中执行类? 来自哪个项目? 如果我只想编译/打包 project2,我该怎么做?(如果我从项目2中执行,则找不到项目1)。我想在不安装项目1的情况下执行此操作。 当然,如果需要的话,项目的结构可以改变。 下面显示了pom.xml文件中的相关部分。父/砰.xml 父/项目1/pom.xml 父/项目2/pom.xml 父/项目3/pom.xml与项目2相似

  • MVNRepository通常为每个依赖项列出“版本”和“更新”。 如果我发布自己的包,如何指定“更新”版本 Maven在解决传递依赖时使用了哪个依赖项?所以如果我的包依赖于包A,它依赖于包B,版本=1.0,更新=1.1。我会得到哪个版本的B?

  • 问题内容: 假设我有四个项目: 项目A(依赖于B和D) 项目B(依赖于D) 项目C(依赖于D) 项目D 在这种情况下,如果我运行项目A,则Maven将正确地解决对D的依赖关系。如果我理解正确,则Maven始终以最短的路径获取依赖关系。由于D是A的直接依赖项,因此将使用B内指定的D而不是D。 但是现在假设这种结构: 项目A(依赖于B和C) 项目B(依赖于D) 项目C(依赖于D) 项目D 在这种情况下

  • 我试图解决这个梯度错误,我从我的一个朋友那里引进了这个项目,它在他的系统中运行得很好。好像我有以下问题在我的年级。 错误:与项目“:App”中得依赖项“com.android.support:support-annotations”冲突.应用程序(27.0.2)和测试应用程序(25.4.0)的解析版本不同。