es jar包冲突问题

柔情只为你懂 2021-06-24 15:57 753阅读 0赞

es本身依赖了许多其他第三方包,在使用es-java api时,如果引用不当会造成jar包冲突无法使用。

1、默认情况下, 使用es-java api,主需要引入如下的maven信息即可:

  1. <dependency>
  2. <groupId>org.elasticsearch</groupId>
  3. <artifactId>elasticsearch</artifactId>
  4. <version>2.3.2</version>
  5. </dependency>

2、java.lang.NoSuchMethodError:com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concu‌rrent/Executor

这种错误是由于guava版本冲突导致,在es-2.3.2版本中使用的是guava1.8版本,如果项目中其他jar引用的是其他版本guava,会造成冲突,解决方案是加上如下依赖:

  1. <dependency>
  2. <groupId>com.google.guava</groupId>
  3. <artifactId>guava</artifactId>
  4. <version>18.0</version>
  5. </dependency>

3、Exception in thread “main” java.lang.NoSuchFieldError: FAIL_ON_SYMBOL_HASH_OVERFLOW

这种错误是由于jackson版本冲突导致,在es-2.3.2版本中使用的是jackson2.6.2,如果项目中其他jar引用的其他版本jackson,会造成冲突,解决方案加上如下依赖:

  1. <dependency>
  2. <groupId>com.fasterxml.jackson.core</groupId>
  3. <artifactId>jackson-core</artifactId>
  4. <version>2.6.2</version>
  5. </dependency>

发表评论

表情:
评论列表 (有 0 条评论,753人围观)

还没有评论,来说两句吧...

相关阅读

    相关 IDEA解决jar冲突

    简介 因为平时项目整合的jar包太多,今天遇到一个包冲突的问题,昨天能运行的项目,今天突然不能运行了(后来知道是因为新加入了依赖,产生了冲突),并且报错提示与实际情况又不

    相关 maven排查冲突jar

    1. 问题描述 使用maven可以非常方便的管理我们项目的各种依赖,但是也存在着一些问题。当我们在pom.xml文件中引入新的jar包,那么该jar包依赖的其它jar包也

    相关 maven解决jar冲突

    1. maven默认使用第一声明优先的原则,即谁先声明,就使用谁。这个声明的依赖包也是优先进入项目的。 2. 路径近者优先原则。jar包导入时分如下两种。直接依赖要比传递依