如何进行多项目构建,为每个子项目输出一个 jar?

How do I do a multi-project build that outputs a jar for every subproject?

我有一个名为 Main 的项目和 2 个子项目:OneTwo。这是我的 build.sbt 的样子:

name := "Main"

version := "0.1"

scalaVersion := "2.12.7"

lazy val root = Project(id = "root", base = file("."))  aggregate(one, two) dependsOn(one, two)
lazy val one = Project(id = "one", base = file("One"))
lazy val two = Project(id = "two", base = file("Two")) 

当我 运行 sbt compile package 我只得到一个 .jar for Main (Main.jar), 但我想得到一个 .jar 对于每个子项目而不是 MainOne.jarTwo.jar.

我该如何实现?

我也不知道 aggregate(one, two) dependsOn(one, two) 是什么意思,我需要那个吗?

我还希望每个子项目都构建成一个带有 sbt-assembly 的 fat jar。

现在确实有效了。我遇到了这种行为,sbt 告诉我我的程序集没有打包,因为它是最新的,但后来我开始做 sbt clean assembly,而不是 sbt assembly,它就像一个现在魅力。