16

I have some sub-projects those I need to compile with sbt. The structure is like this:

main_project
 - sub_project1
 - sub_project2
 - sub_project3

Of course, they have the correct directory hierarchy (src-main-scala....). How do I compile all of them and each of them in particular?

4

2 回答 2

21

请参阅交互式导航项目

在 sbt 交互式提示符下,键入projects以列出您的项目并project <projectname>选择当前项目。当您运行类似的任务时compile,它会在当前项目上运行。所以你不一定要编译根项目,你可以只编译一个子项目。

您可以使用聚合来编译它们。

于 2013-08-31T22:19:03.783 回答
4

由于所选答案的链接文档已更改,因此答案不再那么清楚了。

build.sbtOP'smain_project中,要将它们编译在一起,他们必须定义一个aggregate,因为new(er) 文档链接到:

lazy val root = (project in file("."))
  .aggregate(util, core)

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

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

然后sbt compile在根项目的目录中运行一个将它们全部编译。

但是,如果您希望一次编译一个,您可以将您的 cmd 行/终端导航到根项目(main_project此处),然后运行以下命令:

user:main_project$: sbt <project name> / compile

使用海报的例子:

user:main_project$: sbt sub_project1 / compile

(如果你在 SBT 终端,那么你可以省略sbt

于 2019-09-05T19:29:25.090 回答