我有一些子项目需要用sbt编译。结构是这样的:
main_project
- sub_project1
- sub_project2
- sub_project3
当然,他们有正确的目录层次结构(src-main-scala ....)。我如何编译所有这些以及每个特别的?
答案 0 :(得分:15)
请参阅Navigating projects interactively:
在sbt交互式提示符下,键入
projects
列出项目,然后键入project <projectname>
以选择当前项目。当您运行compile
之类的任务时,它会在当前项目上运行。因此,您不必编译根项目,只能编译子项目。
您可以使用aggregate对它们进行全部编译。
答案 1 :(得分:2)
由于所选答案的链接文档已更改,因此答案不再那么清晰。
在OP的build.sbt
的{{1}}中,要将它们编译在一起,他们必须定义一个main_project
,因为new(er) documentation链接到:
aggregate
然后在根项目目录中运行lazy val root = (project in file("."))
.aggregate(util, core)
lazy val util = (project in file("util"))
lazy val core = (project in file("core"))
将全部编译。
但是,如果您希望一次编译一个,则可以将cmd行/终端导航到根项目(此处为sbt compile
),然后运行以下命令:
main_project
使用张贴者的示例:
user:main_project$: sbt <project name> / compile
(如果您在SBT终端中,则可以省略user:main_project$: sbt sub_project1 / compile
)