【发布时间】:2021-12-29 19:50:53
【问题描述】:
我正在使用 Spring Boot 和 Gradle 依赖管理插件:
plugins {
id 'org.springframework.boot' version '2.5.6'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
}
发生的情况是,它使用Spring Boot dependency BOM 来解析任何依赖版本。我遇到了问题,因为我使用的某些库需要这些依赖项的不同版本,当插件覆盖这些依赖项时,我会遇到兼容性问题。例如,我正在使用 requires Kafka 2.8.1 的 Debezium 1.7.1,但 Spring 仍然坚持将其降级为 2.7.1,或固定在上述 BOM 文件中的版本。
据我所知,这里有两个选择:
- 以某种方式排除 Spring 依赖项管理插件尝试解析此依赖项 (Kafka) 的版本并让 Debezium 完成
- 手动覆盖依赖版本的 Spring 属性:
ext['kafka.version'] = '2.8.1'
后者有效,但需要我将 Kafka 与 Debezium 分开版本,这很容易崩溃。
如何实现前者,或者有更清洁的替代方案吗?谢谢!
【问题讨论】:
标签: spring spring-boot maven gradle dependency-management