在使用sbt交叉编译Scala时,如何拥有不同的源代码?(财务报表的变动)
我正在使用SBT 0.13.2(也可以是例如0.13.5),并且正在尝试为2.10编写一个项目,并为2.9和2.10交叉编译它。它使用在使用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文件。我该怎么
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打开了一个拉取请求