覆盖spring kakfka版本

问题描述 投票:0回答:2

如何包含特定版本的 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>
spring spring-boot maven spring-kafka dependency-management
2个回答
0
投票

在您的项目中

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>

0
投票

我找到了 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"
    }
}
}
© www.soinside.com 2019 - 2024. All rights reserved.