如何使用sbt创建包含源(.java和.scala)和类的.jar?

时间:2015-03-27 08:49:58

标签: scala class jar sbt

我希望sbt package或任何变体从我的项目中生成'.jar',其中也包含源('.java'和'.scala'文件)。

这将是packageBin和packageSrc的混合。

我没有:

  • 找到任何可以执行此操作的任务?
  • 找到如何调整包任务
  • 也没有定义我的新任务来实现这个目标

感谢任何提示。

2 个答案:

答案 0 :(得分:2)

查看documentation,您可能应该在mappings范围内的packageBin密钥中添加内容。以下似乎对我有用:

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

答案 1 :(得分:2)

以下是如何设置独立任务以创建包含二进制文件和来源的工件,使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