从多个项目打包类文件

时间:2014-04-17 13:24:09

标签: sbt

我使用SBT 0.13.0并具有以下配置:

lazy val remington = project.in(file("remington"))
lazy val mossberg = project.in(file("mossberg")).dependsOn(remington)
lazy val root = project.in(file(".")).dependsOn(mossberg)

当我在" mossberg"中运行包裹任务时项目,来自" remington"项目不包含在生成的jar中。如何包含来自" remington"的班级文件?当我打包" mossberg"项目

1 个答案:

答案 0 :(得分:1)

内置package任务创建一个模块化JAR,一个只包含当前项目中的类文件的JAR文件。模块化JAR为您提供最大的灵活性,因此发布它们更为可取。但是对于部署等,如果你想聚合类文件,我可以想到几种方法。

SBT-组件

sbt-assembly创建了一个胖JAR,一个包含所有依赖项的JAR,包括库依赖项和Scala库。

从多个范围获取值

sbt 0.13还允许您跨多个范围(包括子项目)聚合任务结果,因此您可以使用它来从两个项目中创建包含sources的人工项目。请参阅Getting values from multiple scopes中的sources示例。