传递依赖拉入低于 POM 中声明的版本

Transitive dependency pulling in lower version than declared in POM

我在使用 IntelliJ 开发的 Spring 引导应用程序中使用 spring-restdocs-mockmvc 的 1.2.2 版本。

看一下它的 POM,它声明了 spring-restdocs-core 的以下依赖项:

但由于某些原因,我在开发过程中可用的 spring-restdocs-core 编译版本与此不匹配,使我一直停留在 1.1.2 版本上。

我已经更新了我的存储库、刷新、重建、全新安装,随便你怎么说,我能找到的关于如何 "refresh" 我的 Maven 项目状态的所有内容,没有任何改变。有什么想法吗?

spring.io 上有一个博客 post here 很好地捕捉了这些问题并提供了五种不同的可能解决方案,从使用 Maven 做一些 XML 仰卧起坐到迁移你的体型达到 Gradle(因此完全避开了 XML 仰卧起坐)。看起来 post 呈现为 "option 2" 的内容对您来说可能是最简单的,在您的项目中:

<properties>
    <spring-restdocs.version>1.2.2.RELEASE</spring-restdocs.version>
</properties>

请注意,这确实假设您正在使用 spring-boot-starter-parent,这似乎是一个合理的假设。我相信这也会让您获得 mockmvc 依赖项,因此您可以删除该依赖项的现有声明。这个 link 也可能有用。希望对您有所帮助!