Maven 依赖版本冲突:Elasticsearch 和 Lucene



我的应用程序使用 Elasticsearch 的传输客户端连接到集群ES 1.7.2。根据文档,它使用 Lucene 4.10.4,因此以下是我的应用程序中的依赖项版本:

Elasticsearch : 1.7.2
Lucene : 4.10.4

现在,我想使用基于 lucene 的库(这里)来执行内存渗透。从这个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 集群(此外,我无法升级集群)。

还有其他选择吗?

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

在你的马文诗中,做

<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>

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

最新更新