我有一个Scala库的SBT项目。该实现分散在多个SBT子项目中,但是我想将该库发布为单个JAR。我构建了以下示例:
val subProject = project
val myLibrary = project
.in(file("."))
.dependsOn(subProject)
项目myLibrary
是主要项目,它依赖于所有其他子项目。如果运行sbt myLibrary/package
,我将得到一个JAR文件,其中仅包含项目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)
产生相同结果的预期方式是什么?