2016-02-08 62 views
0

儘管我爲一些項目使用了多項目構建,但我不想將所有項目都放在一個構建中。然而我希望能夠在一個地方爲多個構建定義某些設置。所以最好的辦法似乎是,創建一個Scala文件,然後從每個項目子目錄鏈接到它。因此,在項目的子目錄中創建下面的代碼:sbt如何在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工作,但沒有設置到源目錄有什麼作用,對打造,無論是設置單獨或組合。它們仍然與默認值相同。 我在做什麼錯?我不確定在sbt終端中使用inspect命令scalacOptions設置是否有效。

回答

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必須被視爲一般設置,而其他的則是項目特定的。

相關問題