我们有一个运行在spring 2.3和spring r2dbc上的web服务,它只在spring 2.3之后才可用。
最近,我们需要与现有的elasticsearch 6.x集群集成,spring elasticsearch 4.0不支持这个集群,spring 2.3附带了这个集群。
我试图显式声明dependency spring-data-elasticsearch 3.2.10 (它支持6.xES集群),但是我可以看到 7.6.2 (这种依赖是spring-data-ElasticSearch4.0不再支持6.xES集群的根本原因)仍然加载,而不管在spring-data-elasticsearch 3.2.10's pom.xml中声明的版本6.8.12。
我正在使用gradle与io.spring.dependency-management和org.springframework.boot插件。我想知道如何使用spring 2.3,同时正确地选择3.2.10?
==========编辑==========
我偶然看到了这篇文章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版本。
但是,我仍然不确定以这种方式覆盖版本是否会导致任何不可预见的问题。
发布于 2020-10-06 05:41:04
我没有一个gradle设置来测试这一点,但是使用maven,您需要两件事:
为Elasticsearch版本设置属性和为Spring数据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- running;您必须尝试。
https://stackoverflow.com/questions/64217822
复制相似问题