2014-03-06 22 views
1

在我Build.scala,我有:指定rootProject在build.sbt

override def rootProject = Some(frontendProject) 

我想轉換爲較新build.sbt格式,但不知道這條線的等價物。如何在使用build.sbt時將sbt項目設置爲默認加載?

+0

顯示請,什麼SBT說。根本什麼是「rootProject」?也許你只是想在文件(...)'或'thisProjectRef'中設置'thisProject:=項目? – laughedelic

+0

rootProject是一個內置的sbt概念,用於指定sbt在多項目構建中啓動時切換到的項目 –

回答

3

我仍然不確定自己是否理解你,但是你提到過多項目構建,所以我假定你想定義一個聚合子項目的根項目。這裏是你如何能做到這一點(在你的根build.sbt):

lazy val root = project.in(file(".")).aggregate(subProject1, subProject2) 

lazy val subProject1 = project in file("subProject1") 

lazy val subProject2 = project in file("subProject2") 

sbt documentation約多項目。

然後,如果你想設置的默認項目對SBT啓動時加載到一個子項目,除了你回答這個SO question,我可以建議

  • 運行SBT與sbt "project XXX" shell命令
  • 或加入這一行到您的build.sbt

    onLoad in Global := { Command.process("project XXX", _: State) } compose (onLoad in Global).value

在這兩種情況下,sbt首先加載根項目,然後加載子項目。

+0

您指出的另一個問題是我回答:-)儘管我可能應該更新答案,因爲我發現一個更好的方式來設置默認項目加載到sbt啓動,這就是我在這裏所指的。除非我不確定如何使它在build.sbt –

+0

中工作哦,對不起,我沒有注意到它是你。好的,所以我找不到任何方法來覆蓋'build.sbt'中的'rootProject',但我可以建議兩種解決方案,除了你的舊的解決方案 - 我將它們添加到我的答案。 – laughedelic

0

我發現下面的腳本是有幫助的:

#!/usr/bin/env bash 

exec "sbt" "project mysubproject" "shell" 
exit $? 
相關問題