【问题标题】:Scala and Scala.js version included in artifact id工件 ID 中包含的 Scala 和 Scala.js 版本
【发布时间】:2018-11-04 15:27:32
【问题描述】:

我刚刚成功地将我的第一个 Scala 和 Scala.js 交叉构建库发布到 Sonatype,现在可以在我的应用程序中使用以下两个工件:

我现在的问题是:为什么 Scala 和 Scala.js 版本包含在工件 ID 中?我不认为我以前见过这样的事情,所以我想知道我是否做错了什么。这是我的build.sbthttps://github.com/fbaierl/scalajs-cross-compile-tarjan/blob/03954a3e2d1442ad339298a986209c1403c9692e/build.sbt

【问题讨论】:

    标签: scala maven scala.js sonatype cross-build


    【解决方案1】:

    这就是 Scala 工件的工作方式。几乎所有的工件看起来都是这样的——当你在 sbt 中使用这些工件时它并不明显,因为(IIRC)_2.12 隐含在 sbt 中的 %% 运算符中。 (_sjs0.6 隐含在 %%% 运算符中。)

    其根本原因是由不同主要版本的 Scala 编译器(Scala 版本为 epoch.major.minor)编译的工件不是二进制兼容的(否则语言和标准库无法发展)。你不能混合例如_2.12 和 _2.11 工件在类路径上,因此必须为两个 Scala 版本分别发布同一库的“相同”版本,因此需要后缀来区分它们。

    【讨论】:

    • 太棒了。谢谢你。 :)
    猜你喜欢
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多