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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何交叉编译支持不同核心库API的Scala版本?相关的知识,希望对你有一定的参考价值。

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

例如2.12.x Builder(抽象类)要求您实现方法'+ ='。在2.13.x中,“+ =”现在是最终的,你需要实现方法'addOne'。哎呀。这样的一些事情。

由于Scala没有条件编译,最好的方法(使用sbt)来组织构建以适应差异是什么?

答案

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

以上是关于如何交叉编译支持不同核心库API的Scala版本?的主要内容,如果未能解决你的问题,请参考以下文章

如何交叉编译 动态库

为啥交叉构建约定将 scala 版本附加到 artifactId?

如何从特定项目的交叉构建的sbt多项目中删除scala版本

如何让 SBT 跳过给定子项目的交叉编译?

VS不同编译器,x86,x64,动态库,静态库交叉引用问题

VS不同编译器,x86,x64,动态库,静态库交叉引用问题