当前位置: 首页 > 知识库问答 >
问题:

同时使用Spring Boot,QueryDSL和Springfox Swagger - 番石榴版本不匹配

慕容俭
2023-03-14

我正在尝试使用QueryDSL进行Spring Data谓词解析,以及用于我的Spring Boot服务的Swagger API文档。但是,我遇到了一个问题。当我的应用程序启动时,我收到以下错误消息:

java.lang.NoSuchMethodError: 'com.google.common.collect.FluentIterable com.google.common.collect.FluentIterable.concat(java.lang.Iterable, java.lang.Iterable)

An attempt was made to call a method that does not exist. The attempt was made from the following location:
 springfox.documentation.schema.DefaultModelDependencyProvider.dependentModels(DefaultModelDependencyProvider.java:79)

The following method did not exist:

    'com.google.common.collect.FluentIterable com.google.common.collect.FluentIterable.concat(java.lang.Iterable, java.lang.Iterable)'

The method's class, com.google.common.collect.FluentIterable, is available from the following locations:

    jar:file:/my_m2/com/google/guava/guava/18.0/guava-18.0.jar!/com/google/common/collect/FluentIterable.class

Action:

Correct the classpath of your application so that it contains a single, compatible version of com.google.common.collect.FluentIterable

我发现这是因为QueryDSL依赖于Guava 18.0库,而Springfox / Swagger依赖于Guava 20.0库,所以我最终在类路径中使用了两个版本的库,maven似乎优先考虑18.0库。我如何修复这种依赖不匹配?有什么办法可以强迫QueryDSL尝试使用Guava 20.0(寄希望于它还能起作用)?或者有没有其他的解决方法?

版本:Spring启动版本:<代码> 2.1.9.RELEASE

共有1个答案

阎建中
2023-03-14

如果使用Gradle,可以强制使用特定的库版本。在这种情况下,您可以使用以下语法-

configurations.all {
    resolutionStrategy.force "com.google.guava:guava:$guavaVersion"
}

我相信有一个类似的解决方案如果您使用一个d

 类似资料:
  • 问题内容: 我的应用程序对它的依赖程度很高或更高 但是我也在使用它与> 22.0的番石榴版本不兼容,如下所述: https://github.com/SeleniumHQ/selenium/issues/4381 我对Java很陌生,这里最好的做法是什么? 我已经研究过类加载器,但是看起来像是一个很深的兔子洞。 问题答案: 由于您对 使用的依赖度很高,因此 可能会遇到麻烦。但是 Selenium发

  • 问题内容: 刚刚发现了Guava库项目。 这些与GWT兼容吗? 问题答案: 从该页面的介绍性PDF中, 您可以在…上使用这些库。 在JDK 6上 在Android上, 我们认为。需要志愿者来帮助我们进行测试。 在Google App Engine上, 我们认为。需要志愿者来帮助我们进行测试。 在GWT上-参差不齐! 由于GWT的JDK库支持 可能参差不齐,也许是2/3,所以到目前为止,这些库中的东

  • 问题内容: 我在commons- lang中使用了简单的DTO。现在,我尝试使用Google Guava代替Apache Commons库。我在番石榴找到了。但是如果班上有很多成员,这太冗长了。例如: 如果我使用commons-lang,则简单得多: 有什么更好的方法可以用Guava而不是commons-lang 来实现? 番石榴文件 问题答案: 我有番石榴的小招。我将 IntelliJ IDEA

  • 问题内容: 我想知道哪个更有效,为什么? 1) 要么 2) 问题答案: 我看不出您为什么要在此处使用builder的任何原因: 比在这种情况下制作一个更具可读性, 不会推断通用类型,并且在用作单行代码时必须自己指定类型, (来自docs) 在与另一个不可变集合调用时 做得很好( 尝试避免在安全的情况下实际复制数据 ), (从源) 调用以前创建的,同时避免为零元素和一元素集合创建任何列表(分别返回空

  • 我想为番石榴设个坑(http://pitest.org/)进行突变熟练度测试,但我在尝试运行时出现以下错误。这是我得到的错误: 基本上,要么PIT没有检测到测试,要么测试在PIT中运行不正常,所有测试都失败了。我读了这篇文章:JUnit测试通过,但PIT说套件不是绿色的,我认为“您的代码库是否包含可变静态状态?(例如在单例中)”是问题所在,但我不知道如何修复它。如果测试套件有一些隐藏的顺序依赖关系

  • 我的 Spark 版本是 2.2.0,它在本地工作,但在具有相同版本的 EMR 上,它给出了以下异常。