当前位置: 首页 > 面试题库 >

NoSuchMethodError:com.google.common.util.concurrent.MoreExecutors.directExecutor在elasticsearchjar中发生冲突

华君浩
2023-03-14
问题内容

创建Elasticsearch
Client时,出现异常java.lang.NoSuchMethodError:com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava
/ util / concurrent / Executor;
经过一些查找之后,像Guava-18这样的接缝将在运行时被旧版本覆盖,而Guava-18仅在编译任务期间起作用。

我的Maven配置如下:

    <build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.0</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.4.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

如何在执行时强制使用Guava-18版本?


问题答案:

您应该尝试查找番石榴的“旧”版本的来源,并将其全部排除一次。

查找依赖项:

mvn dependency:tree | grep guava

排除它:

<dependency>
  <groupId>org.whatever</groupId>
  <artifactId>the_lib_that_includes_guava</artifactId>
  <version>0.97</version>
  <exclusions>
    <exclusion>
      <artifactId>com.google</artifactId>
      <groupId>guava</groupId>
    </exclusion>
  </exclusions>
</dependency>

有关依赖性排除的更多信息,请参见https://maven.apache.org/guides/introduction/introduction-to-
optional-and-excludes-
dependencies.html



 类似资料:
  • 问题内容: 创建Elasticsearch Client时,出现异常java.lang.NoSuchMethodError:com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava / util / concurrent / Executor; 经过一些查找之后,像Guava-18这样的接缝在运行时会被旧版本覆盖,而

  • 我目前正在做一个spring boot冬眠。 我需要在mySql数据库中保存一个对象列表,我了解了使用saveAll()和foreach save()进行保存的区别,我可以得出这样的结论:saveAll()要快得多。然而,在例外情况下,例如UK违反,整个进程回滚,并且没有对象将被保存。 更简单地说:我想在一个事务中保存一个object列表,如果有任何约束违反,忽略它并保存其余的。 这是我的实体:

  • 我正在从国家美术馆的在线目录中检索信息。由于目录的结构,我无法通过提取和跟踪条目之间的链接来导航。幸运的是,集合中的每个对象都有一个可预测的url。我希望我的爬行器通过生成开始URL来导航集合。 我试图通过实现这个线程中的解决方案来解决我的问题。不幸的是,这似乎打破了我蜘蛛的另一部分。错误日志显示我的网址正在成功生成,但它们没有被正确处理。如果我正确地解释了日志——我怀疑我没有——在重新定义允许我

  • 我试图在OSGi(Felix)中使用新的Leap运动传感器,但我最终遇到了一个异常访问冲突。 在我的清单中,我声明捆绑NativeCode如 当然: 在OSGi之外使用相同库的简单程序运行良好 这两个库在“x86”文件夹中的我的包中 “osname=win32;processor=x86”适合我(已经用其他bunble进行了测试) 在反编译Leap Motion jar后,我看到LeapJava.

  • 我正在使用git跟踪对LaTeX文档的更改。我倾向于将合著者的反馈保存在一个单独的分支中,并在以后将其合并。到目前为止,事情似乎神奇地正确地合并了,但我想知道合并冲突何时发生,这样我就可以在合并过程中获得一些真正的信任(当然我不希望文本出现问题)。 关于StackOverflow,有许多问题似乎问了同样的问题,但没有一个答案是非常具体的。例如,这个答案指定如果对同一个区域进行更改,就会发生冲突,但

  • 我试图在中使用来创建一个新变量,在这个变量中,我将一些值设置为missing并同时重新编码其他值。 但是,如果尝试将值设置为,则会出现一个错误,说明我们无法创建变量,因为是逻辑的: mutate_impl(.data,dots)中出错: 计算错误:类型必须是double,不是逻辑。 在数据帧的非逻辑向量中,是否有方法使用此设置值?