在 sbt 0.13 中有一些旧的已回答问题,其中的答案对我不起作用。
将项目的所有运行时依赖项(主要是 jars)复制到 sbt 0.13 中的某个给定目录的最简单方法是什么?请包括任何给定代码的放置位置。
如果重要的话,这是为了导出一些用 Scala 编写的类(一个 servlet 过滤器)以用于战争(在遗留 java servlet 之前)。
默认情况下,sbt 只会编译一个包含src/main/resources
、src/main/scala
和src/main/java
.
要将所有 jars 放在一个地方,您可以使用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/
)。