【发布时间】:2013-02-12 09:42:48
【问题描述】:
由于您在 Scala-versions 之间只有源代码兼容性,因此不幸的是,您需要为它们支持的每个 scala 版本编译像 scalatest 或 scalamock 这样的库。让我感到困惑的是,这些库提供了大量的工件(scalatest_2.9.0、scalatest_2.9.1、scalatest_2.10 等等)——每个 scala 版本都有一个,这样 maven 存储库中到处都是从构建的工件相同的来源。我的直觉告诉我宁愿为每个 scala 版本使用一个带有分类器的工件。 (事实上,maven pom reference 提到有时使用 jdk14 和 jdk15 分类器来处理工件,这看起来和我很相似。)那么,为什么 Scala 的人选择了许多工件矫枉过正:-) 呢?
【问题讨论】:
-
也许这与 Scala 二进制文件在主要版本之间不兼容并且不应该混合使用的事实有点相关。
-
它远远超出了“不应该!”当您尝试加载由不兼容版本的编译器生成的类时,通常会出现异常。这也可能是一个相当令人困惑的错误——没有什么比“Scala 版本不匹配;请从兼容版本的 Scala 编译器中找到该类的版本”更直接的了。
标签: scala maven classification