[英]Changing version for a transitive dependency in gradle
我有一个非常奇怪的要求,即为 scala 库使用两个不同的版本。
场景是有一些非常旧的测试正在使用具有非常旧版本的 scala 库,现在当在同一个包中创建新的 Kafka 消费者和生产者时,scala 会传递获取最新版本的 scala。
有没有办法可以在旧版本上运行旧测试并在新版本上运行新测试 scala。
当我们在 Spring Boot 上下文中使用旧版本的 Spring Kafka 时,我可以分享我们为降级 Scala 依赖项所做的工作:
dependencies {
constraints {
testImplementation('org.scala-lang:scala-library') {
// See https://github.com/spring-projects/spring-kafka/issues/1623
// This can be removed if upgrading Spring Kafka to 2.6
because('There is a transitive dependency from Jackson to Scala that is not compatible with the version required by Apache Kafka')
version {
strictly '2.12.11'
}
}
}
}
这将强制 scala-library 依赖项成为所有测试的特定版本。
如果您想在一个版本中运行一些测试,而在另一个版本中运行一些测试,并且它们都在同一个模块中,那么您最好将测试隔离在不同的源集中。 您可以在此处的用户指南中阅读相关内容(尽管关于集成测试,同样的原则也适用于其他类型的测试。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.