gpt4 book ai didi

scala - 使用 sbt 交叉编译 Scala 时如何拥有不同的源代码? (MurmurHash 的变化)

转载 作者:行者123 更新时间:2023-12-01 05:07:03 24 4
gpt4 key购买 nike

我正在使用 SBT 0.13.2(也可以是 0.13.5),并且正在尝试为 2.10 编写一个项目并将其交叉编译为 2.9 和 2.10。它使用 scala.util.hashing.MurmurHash3 ,在 2.9 中不存在;取而代之的是 scala.util.MurmurHash (可能不兼容???)。我的来源需要不同来处理不同地方和不同接口(interface)的导入。我想我需要有两个不同的 .scala文件并以某种方式告诉 SBT 编译一个 .scala为 2.9 编译时的文件,以及不同的 .scala 2.10 的文件。我该怎么做呢?

谢谢。

最佳答案

您可以附加到 unmanagedSourceDirectories :

lazy val commonSettings = Seq(
scalaVersion := "2.10.4",
unmanagedSourceDirectories in Compile +=
(sourceDirectory in Compile).value / ("scala_" + (scalaBinaryVersion.value match {
case v if v startsWith "2.9." => "2.9"
case v => v
}))
)

lazy val root = (project in file(".")).
aggregate(app).
settings(commonSettings: _*)

lazy val app = (project in file("app")).
settings(commonSettings: _*)

现在, src/main/scala_2.10是 Scala 2.10.x 和 src/main/scala_2.9 的源目录的一部分对于 Scala 2.9.x。

更新 :

现在有一个由@indrajitr Enable cross-version support for Scala sources. #1799 打开的拉取请求

关于scala - 使用 sbt 交叉编译 Scala 时如何拥有不同的源代码? (MurmurHash 的变化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27698852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com