Maven用特定的依赖覆盖父依赖



我想用特定的一个覆盖父spring-data-elasticsearch依赖项。pom.xml:

...
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.5</version>
<relativePath/>
</parent>
...
<dependencies>
...
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>4.1.1</version>
</dependency>
</dependencies>
...
在这个配置下,我在库中有7.17.6 elasticsearch。当我将版本更改为更高或更低的版本时,没有任何变化,但是当我将parn版本更改为2.5.2时,库中的elasticsearch版本变为7.12.1。我的问题是:我如何在不改变父版本的情况下改变依赖关系的版本?

我试过用标签排除依赖关系,但是没有用。

似乎spring-data-elasticsearch/4.1.1依赖于elasticsearch直到v7.17.8(不是v7.12.1)

要覆盖父级中对elasticsearch的依赖,您应该使用dependencyManagement标记,如下所示使用elasticsearch v7.12.1。

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.12.1</version>
</dependency>
</dependencies>
</dependencyManagement>

将依赖项放在dependencyManagement标签之外可以工作,但这是不正确的。

最新更新