Files
spring-boot/module/spring-boot-kafka/build.gradle
T
Andy Wilkinson 6df1caf8f9 Auto-configure transactions when using spring-boot-kafka
spring-kafka has an api dependency on spring-tx, placing
the latter on the compile classpath of the former's consumers.
Additionally, when spring.kafka.producer.transaction-id-prefix is
set, the Kafka auto-configuration will define a Kafka-based
transaction manager. However, the transaction manager won't be used
without some configuration from the user as there's no dependency on
spring-boot-transaction and, therefore, no auto-configuration of
@EnableTransactionManagement.

This commit adds a spring-boot-transaction dependency to
spring-boot-kafka, aligning it with the spring-tx dependency that
spring-kafka already has.

Fixes gh-48880
2026-01-19 10:23:12 +00:00

58 lines
2.0 KiB
Groovy

/*
* Copyright 2012-present the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the License);
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
plugins {
id "java-library"
id "org.springframework.boot.auto-configuration"
id "org.springframework.boot.configuration-properties"
id "org.springframework.boot.deployed"
id "org.springframework.boot.docker-test"
id "org.springframework.boot.optional-dependencies"
}
description = "Spring Boot Kafka"
dependencies {
api(project(":core:spring-boot"))
api(project(":module:spring-boot-transaction"))
api("org.springframework.kafka:spring-kafka")
optional(project(":core:spring-boot-autoconfigure"))
optional(project(":core:spring-boot-testcontainers"))
optional(project(":module:spring-boot-micrometer-metrics"))
optional("org.apache.kafka:kafka-streams")
optional("org.testcontainers:testcontainers-kafka")
optional("org.testcontainers:testcontainers-redpanda")
dockerTestImplementation(project(":core:spring-boot-test"))
dockerTestImplementation(project(":test-support:spring-boot-docker-test-support"))
dockerTestImplementation("org.testcontainers:testcontainers-junit-jupiter")
testImplementation(project(":core:spring-boot-test"))
testImplementation(project(":test-support:spring-boot-test-support"))
testImplementation("org.springframework.kafka:spring-kafka-test")
testRuntimeOnly("ch.qos.logback:logback-classic")
}
tasks.named("compileTestJava") {
options.nullability.checking = "tests"
}
tasks.named("compileDockerTestJava") {
options.nullability.checking = "tests"
}