覆寫 Spring Boot 相依性

當在 Spring Boot 應用程式中使用 Spring for Apache Kafka 時,Apache Kafka 相依性版本由 Spring Boot 的相依性管理決定。如果您希望使用不同版本的 kafka-clientskafka-streams,並使用內嵌的 kafka broker 進行測試,您需要覆寫 Spring Boot 相依性管理所使用的版本;設定 kafka.version 屬性。

Spring Boot 3.1.x 和 3.2.x 的預設 kafka-clients 相依性分別為 3.4.1 和 3.6.2。

或者,若要將不同的 Spring for Apache Kafka 版本與支援的 Spring Boot 版本搭配使用,請設定 spring-kafka.version 屬性。

  • Maven

  • Gradle

<properties>
    <kafka.version>3.5.1</kafka.version>
    <spring-kafka.version>3.2.4</spring-kafka.version>
</properties>

<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka</artifactId>
</dependency>
<!-- optional - only needed when using kafka-streams -->
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-streams</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka-test</artifactId>
    <scope>test</scope>
</dependency>
ext['kafka.version'] = '3.5.0'
ext['spring-kafka.version'] = '3.2.4'

dependencies {
    implementation 'org.springframework.kafka:spring-kafka'
    implementation 'org.apache.kafka:kafka-streams' // optional - only needed when using kafka-streams
    testImplementation 'org.springframework.kafka:spring-kafka-test'
}

只有當您在測試中使用內嵌的 Kafka broker 時,才需要測試範圍相依性。