【问题标题】:Compiling sub projects in sbt在 sbt 中编译子项目
【发布时间】:2019-09-06 03:29:25
【问题描述】:

我有一些需要用 sbt 编译的子项目。结构是这样的:

main_project
 - sub_project1
 - sub_project2
 - sub_project3

当然,它们具有正确的目录层次结构 (src-main-scala....)。我如何编译所有这些,特别是它们中的每一个?

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    Navigating projects interactively:

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

    你可以使用aggregate来编译它们。

    【讨论】:

      【解决方案2】:

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

      在 OP 的 main_projectbuild.sbt 中,要将它们编译在一起,它们必须定义一个 aggregate,因为 new(er) documentation 链接到:

      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

      【讨论】:

      • 可能对某人有帮助:我不得不删除空格,即 sbt sub_project1/compile 而不是 sbt sub_project1 / compile。否则 sbt 会抱怨 [error] Expected '/' (if selecting a project)(以及其他错误)。
      猜你喜欢
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      相关资源
      最近更新 更多