Maven依赖版本冲突:Elasticsearch和Lucene

时间:2017-01-21 21:23:04

标签: java maven elasticsearch lucene

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

Elasticsearch : 1.7.2
Lucene : 4.10.4

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

  • 搜索与Lucene 4.10.4兼容的早期版本的渗透库 - 没有成功
  • 尝试使用Lucene 6.3.0进行弹性搜索 - 没有成功。我可以尝试更新elasticsearch依赖版本,但我的应用程序无法使用新版本连接到1.7.2群集(此外,我无法升级群集)。

还有其他选择吗?

1 个答案:

答案 0 :(得分: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>

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

相关问题