虽然我正在为一些项目使用多项目构建,但我不想将所有项目都放在一个构建中。然而,我希望能够在一个地方为多个构建定义某些设置。因此,最好的方法是创建一个Scala文件,然后从每个项目子目录链接到它。因此,在项目子目录中创建以下代码:
import sbt._
import Keys._
import AddSettings._
object RBuild extends Build
{
override lazy val settings: Seq[Def.Setting[_]] = super.settings ++ Seq(
scalaVersion := "2.11.7",
scalaSource in Compile := baseDirectory.value / "src",
scalaSource in Test := baseDirectory.value / "testSrc",
unmanagedSourceDirectories in Compile := Seq(baseDirectory.value / "src"),
unmanagedSourceDirectories in Test := Seq(baseDirectory.value / "src"),
scalacOptions ++= Seq("-feature", "-language:implicitConversions", "-deprecation", "-target:jvm-1.8"))
}
scalaVersion可以正常工作,但源目录的任何设置都不会对构建产生任何影响,无论是单独设置还是组合设置。它们仍然与默认值相同。 我做错了什么?我不确定scalacOptions设置在sbt终端中使用inspect命令是否有效。
答案 0 :(得分:0)
我遇到了这个寻找解决其他问题的方法。设置项目中的设置:
import sbt._
import Keys._
import AddSettings._
object RBuild extends Build
{
lazy val root = (project in file(".")).settings(
scalaVersion := "2.11.7",
scalaSource := (baseDirectory.value / "src"),
scalaSource in Test := baseDirectory.value / "testSrc",
unmanagedSourceDirectories in Compile := Seq(baseDirectory.value / "src"),
unmanagedSourceDirectories in Test := Seq(baseDirectory.value / "src"),
scalacOptions ++= Seq("-feature", "-language:implicitConversions", "-deprecation", "-target:jvm-1.8"))
}
虽然这仍然没有回答为什么scalaVersion有效而不是其他设置的问题。我认为scalaVersion必须被视为一般设置,而其他则是项目特定的。