在 sbt 0.13 中收集或复制依赖项

Collecting or copying dependencies in sbt 0.13

关于这个问题,有一些旧的已回答问题的答案在 sbt 0.13 中对我不起作用。

将项目的所有运行时依赖项(主要是 jars)复制到 sbt 0.13 中的某个给定目录的最简单方法是什么?请包括应放置任何给定代码的位置。

如果重要的话,这是为了导出一些用 Scala 编写的 类(servlet 过滤器)以用于 war(在遗留 java servlet 之前)。

默认情况下,sbt 只会编译一个包含 src/main/resourcessrc/main/scalasrc/main/java.

内容的 jar

要将所有 jar 放在一个地方,您可以使用 sbt-pack 或 sbt-native-packager。我将在这里展示 sbt-pack,因为它非常简单。

project/plugins.sbt 中包含以下内容:

addSbtPlugin("org.xerial.sbt" % "sbt-pack" % "0.6.5")

然后在 build.sbt 中包含以下内容:

packAutoSettings

然后在 sbt 中,运行 pack,jar 将被复制到 target/pack/lib。 (此任务还会在 target/pack/bin/ 中生成启动脚本)。