scala - 如何交叉编译支持不同核心库 API 的 Scala 版本?

标签 scala

我正在构建一个我想支持 Scala 2.12 和 2.13 目标的库。这些版本之间存在一些不兼容的差异,这意味着我需要为两个版本之间的几个区域使用不同的代码。

例如 2.12.x Builder(抽象类)要求你实现一个方法 '+='。在 2.13.x 中,'+=' 现在是最终版本,您需要实现方法 'addOne'。啊。诸如此类的几件事。

什么是(使用 sbt)组织我的构建以适应差异的最佳方式,因为 Scala 没有条件编译?

最佳答案

Luis Miguel 和 Sascha 的答案都是正确的。 Cats 确实有一个很好的例子,SBT 有这种能力。在文档中找不到它,但在这里解释:https://github.com/twitter/util/issues/219

关于scala - 如何交叉编译支持不同核心库 API 的 Scala 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55385751/

相关文章:

scala - 如何保存 TypeTag 然后稍后使用它将类型重新附加到 Any (Scala 2.10)

scala - Scala lambda 中 _ 的用法

scala - 如何将sbt test/ScalaTest配置为仅显示失败?

scala - 使用azure databricks scala将数据从blob存储加载到sql数据仓库

scala - 如何从递归生成值的流创建 akka-stream 源?

scala - Scala 中的方法何时需要返回类型?

Scala 集成测试 "No such setting/task"

generics - Scala:抽象类型可以是其他类型的子类型吗?

斯卡拉炸弹? (就像一个 zipper 炸弹)

Scala代码不获取s3文件