我有一个 Scala 库的 SBT 项目。该实现分布在多个 SBT 子项目中,但我想将该库作为单个 JAR 发布。我构建了以下示例:
val subProject = project
val myLibrary = project
.in(file("."))
.dependsOn(subProject)
Run Code Online (Sandbox Code Playgroud)
该项目myLibrary是主要项目,它依赖于所有其他子项目。如果我运行sbt myLibrary/package,我会得到一个 JAR 文件,其中包含 project 中源的类文件、源和呈现的文档myLibrary。我找到了以下解决方法来包含来自其他子项目的文件,方法是将如下设置添加到myLibrary:
val myLibrary = project
.in(file("."))
.dependsOn(subProject)
.settings(
Compile / packageBin / mappings ++= (subProject / Compile / packageBin / mappings).value,
Compile / packageSrc / mappings ++= (subProject / Compile / packageSrc / mappings).value,
Compile / packageDoc / mappings ++= (subProject / Compile / packageDoc / mappings).value)
Run Code Online (Sandbox Code Playgroud)
产生相同结果的预期方法是什么?