在build.sbt中指定rootProject

时间:2014-03-06 06:02:00

标签: sbt

在我的Build.scala中,我有:

override def rootProject = Some(frontendProject)

我正在尝试转换为较新的build.sbt格式,但不知道该行的等效内容。在使用build.sbt时,如何设置sbt的项目默认加载?

2 个答案:

答案 0 :(得分: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 "project XXX" shell命令运行sbt
  • 或将此行添加到build.sbt

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

在这两种情况下,sbt首先加载根项目,然后加载子项目。

答案 1 :(得分:0)

我发现以下脚本有用:

#!/usr/bin/env bash

exec "sbt" "project mysubproject" "shell"
exit $?