我们在spring-boot 2.3上运行带有spring-data-r2dbc的Web服务,该服务仅在spring-boot 2.3之后可用。
最近,我们需要与现有的elasticsearch 6.x集群集成,而spring-boot 2.3附带的spring-data-elasticsearch 4.0不支持该集群。
我试图明确声明依赖关系 spring-data-elasticsearch 3.2.10 (支持6.x es集群),但是我可以看到 elasticsearch-rest-high-level-client 7.6.2 (此依赖关系是不管是否在spring-data-elasticsearch 3.2.10的pom.xml中声明了版本6.8.12 ,spring-data-elasticsearch 4.0的根本原因都不再支持6.x es集群了。
我正在使用gradt和io.spring.dependency-management
和org.springframework.boot
插件。我想知道如何在选择spring-data-elasticsearch 3.2.10的同时继续使用spring-boot 2.3?
==========编辑==========
我碰到了Why does Gradle downgrade my transitive dependencies in a Grails 3.1 application?这个帖子,发现这是因为io.spring.dependency-management
gradle插件将elasticsearch版本强制为7.6.2。
我通过ext["elasticsearch.version"] = 6.8.12
进行了更改,现在可以使用elasticsearch版本了。
但是,我仍然不确定以这种方式覆盖的版本是否会引起任何无法预料的问题。
最佳答案
我没有gradle设置来测试这一点,但是使用Maven,您需要做两件事:
设置Elasticsearch版本的属性和Spring Data Elasticsearch的依赖项:
<properties>
<elasticsearch.version>6.8.4</elasticsearch.version>
</properties>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>3.2.10.RELEASE</version>
</dependency>
带有示例程序的第一次测试似乎运行良好,但是可能会有问题,因为spring-data-elasticsearch和spring-data-r2dbc现在都依赖于不同版本的spring-data-commons。您将不得不尝试。
关于spring-boot - 在使用spring-boot 2.3的同时选择spring-data-elasticsearch 3.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64217822/