如何使用sbt创建一个包含源代码(.java和.scala)和类的.jar



我希望sbt package或任何变体从我的项目中生成一个".jar",其中还包括源文件(".java"one_answers".scala"文件)。

这将是packageBin和packageSrc的混合。

我没有:

  • 找到能做到这一点的任务了吗
  • 了解如何调整包任务
  • 也没有定义我实现这一目标的新任务

谢谢你的提示。

查看文档,您可能应该向packageBin作用域中的mappings键添加内容。以下似乎对我有效:

mappings in (Compile, packageBin) ++= (mappings in (Compile, packageSrc)).value

以下是如何设置一个独立任务来创建带有二进制文件和源代码的工件,而不影响packageBinpackageSrc

val packageBinSrc = taskKey[File]("Produces an artifact containing both binaries and sources.")
artifactClassifier in packageBinSrc := Some("binsrc")
inConfig(Compile) {
  import Defaults._
  packageTaskSettings(packageBinSrc, concatMappings(packageBinMappings, packageSrcMappings))
}

可选地,如果您喜欢,您可以重新定义package以使用packageBinSrc:

Keys.`package` := (packageBinSrc in Compile).value

最新更新