Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用sbt交叉编译Scala时,如何拥有不同的源代码?(财务报表的变动)_Scala_Sbt_Cross Compiling_Murmurhash - Fatal编程技术网

在使用sbt交叉编译Scala时,如何拥有不同的源代码?(财务报表的变动)

在使用sbt交叉编译Scala时,如何拥有不同的源代码?(财务报表的变动),scala,sbt,cross-compiling,murmurhash,Scala,Sbt,Cross Compiling,Murmurhash,我正在使用SBT 0.13.2(也可以是例如0.13.5),并且正在尝试为2.10编写一个项目,并为2.9和2.10交叉编译它。它使用scala.util.hashing.MurrullHash3,这在2.9中是不存在的;取而代之的是scala.util.BurrushHash(可能不兼容??)。我的源代码需要不同,才能在不同的地方和不同的接口处理导入。我假设我需要两个不同的.scala文件,并告诉SBT在编译2.9时编译一个.scala文件,在编译2.10时编译另一个.scala文件。我该怎么

我正在使用SBT 0.13.2(也可以是例如0.13.5),并且正在尝试为2.10编写一个项目,并为2.9和2.10交叉编译它。它使用
scala.util.hashing.MurrullHash3
,这在2.9中是不存在的;取而代之的是
scala.util.BurrushHash
(可能不兼容??)。我的源代码需要不同,才能在不同的地方和不同的接口处理导入。我假设我需要两个不同的
.scala
文件,并告诉SBT在编译2.9时编译一个
.scala
文件,在编译2.10时编译另一个
.scala
文件。我该怎么做


谢谢。

您可以附加到
非托管源目录

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打开了一个拉取请求