为不同的Scala版本选择不同的源文件

时间:2014-05-12 18:00:13

标签: scala sbt cross-compiling

您好我想知道使用SBT是否可以针对某些类使用不同的源来针对不同的Scala版本进行交叉编译。基本上保持兼容性,但也利用新的语言功能。感谢。

1 个答案:

答案 0 :(得分:6)

您可以添加到unmanagedSourceDirectories setting.

,根据scala版本添加其他源目录

这样的事情:

unmanagedSourceDirectories in Compile <+= (scalaVersion, sourceDirectory in Compile) {
  case (v, dir) if v startsWith "2.9" => dir / "scala_2.9"
  case (v, dir) if v startsWith "2.10" => dir / "scala_2.10"
}

应该允许你有三个目录:

src/main/scala      # both 2.9 and 2.10
src/main/scala_2.9  # source only for 2.9
src/main/scala_2.10 # source only for 2.10