繁体   English   中英

在 gradle 中更改传递依赖项的版本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM