首页 文章

Maven依赖版本冲突:Elasticsearch和Lucene

提问于
浏览
0

我的应用程序使用Elasticsearch的传输客户端连接到 ES 1.7.2 集群 . 根据documentation,它使用Lucene 4.10.4,所以下面是我的应用程序中的依赖版本:

Elasticsearch : 1.7.2
Lucene : 4.10.4

现在,我想使用基于lucene的库(here)来执行内存渗透 . 查看 pom.xml ,它似乎使用Lucene 6.3.0库 . 因此,在添加此依赖项之后,我的应用程序无法启动,因为Elasticsearch需要Lucene 4.10.4并且maven用6.3.0覆盖它,我尝试了以下选项:

  • 搜索了与Lucene 4.10.4兼容的早期版本的渗透库 - 没有成功

  • 尝试使用Lucene 6.3.0进行弹性搜索 - 没有成功 . 我可以尝试更新elasticsearch依赖版本,但我的应用程序赢得了't be able to connect to 1.7.2 cluster with new version (also, I can' t升级集群) .

还有其他选择吗?

1 回答

  • 1

    您可以尝试在其他库上排除对lucene的依赖,并希望它适用于版本4.x.

    在你的maven pom中,做

    <dependency>
      <groupId>com.github.flaxsearch</groupId>
      <artifactId>luwak</artifactId>
      <version>1.4.0</version>
      <exclusions>
         <exclusion>
            <groupId>[the lucene lib group]</groupId>
            <artifactId>[the lucene lib artifact]</artifactId>
         </exclusion>
       </exclusions>
    </dependency>
    

    从技术上讲,这是解决版本冲突的方法 . 但是无法保证可以构建应用程序 .

相关问题