如何包含特定版本的 spring kafka。 Kafka 版本依赖项是由起始父级导入的 2.5.14。但我想用 2.6.10 版本覆盖它 我该怎么办?
这是我的 Spring Boot 启动器
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
</parent>
Kafka 版本依赖是
2.5.14
。
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
在您的项目中
pom.xml
文件覆盖 spring-kafka.version
属性值以提供所需的版本。
如果您想以相同的方式覆盖 kafka
库版本,您可以覆盖 kafka.version
属性值。
<properties>
<spring-kafka.version><!-- desired spring-kafka version--></spring-kafka.version>
<kafka.version><!-- desired kafka version--></kafka.version>
</properties>
我找到了 spring-cloud-stream-binder-kafka-streams 和 gradle 的另一种替代方案。
configurations.configureEach {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
// This solution is to update all the Kafka dependencies and not only kafka-streams. Ex: kafka-clients, kafka_2.13, etc.
// Source: https://docs.spring.io/spring-kafka/reference/appendix/override-boot-dependencies.html + Kafka Client and Spring Boot Compatibility: https://spring.io/projects/spring-kafka#overview
// springboot:3.2.6 > spring-cloud-dependencies:2023.0.1 > :spring-cloud-stream-binder-kafka-streams:4.1.1 > kafka-streams:3.6.2
// springboot:3.3.0 > spring-cloud-dependencies:2023.0.3 > :spring-cloud-stream-binder-kafka-streams:4.1.3 > kafka-streams:3.7.1
if (details.requested.group == "org.apache.kafka") {
details.useVersion "3.8.0"
}
}
}