简体   繁体   English

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

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

I have a project, called Main , and 2 subprojects: One , Two . 我有一个名为Main的项目,还有2个子项目: OneTwo Here's what my build.sbt looks like: 这是我的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")) 

when I run sbt compile package I only get a .jar for Main ( Main.jar ), but I want to get a .jar for every subproject and not Main : One.jar , Two.jar . 当我运行sbt compile package我只为MainMain.jar )获得一个.jar ,但我想为每个子项目都获得一个.jar ,而不是MainOne.jarTwo.jar

How do I achieve this? 我该如何实现?

Also I have no idea what aggregate(one, two) dependsOn(one, two) means, do I even need that? 另外我也不知道aggregate(one, two) dependsOn(one, two)是什么意思,我什至需要那个吗?

I also want every subproject to build into a fat jar with sbt-assembly . 我还希望每个子项目都可以使用sbt-assembly内置到一个胖子罐中。

It actually works now. 它现在实际起作用。 I was encountering this behavior, where sbt was telling me that my assembly was not packaged, because it was up-to-date, but then I started doing sbt clean assembly , instead of sbt assembly and it works like a charm now. 我遇到了这种行为,因为sbt告诉我我的程序集没有打包,因为它是最新的,但是后来我开始执行sbt clean assembly ,而不是sbt assembly ,它现在就像一种魅力。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM