在构建web应用程序时,SBT能够将我的所有jar依赖项收集到WAR文件中。
是否可以让SBT将我在非web应用程序中依赖的所有jars文件放到一个目录中,这样我就可以在运行该应用程序时轻松地将它们放到类路径中?
发布于 2011-04-09 04:56:04
是的,您可以在您的项目定义类中放入如下内容:
val libraryJarPath = outputPath / "lib"
def collectJarsTask = {
val jars = mainDependencies.libraries +++ mainDependencies.scalaJars
FileUtilities.copyFlat(jars.get, libraryJarPath, log)
}
lazy val collectJars = task { collectJarsTask; None } dependsOn(compile)
并在您的SBT控制台中通过collect-jars
运行任务。这将把scala-library.jar ary.jar和用于编译的jars复制到与classes
目录相同的名为lib
的目录中。
发布于 2014-09-01 05:38:20
在我看来,不用担心sbt-assembly。我是scala的新手,但我对技术不太了解,我处理了很多技术和sbt-汇编它并不干净。这只是一个观点。
我推荐你用sbt-pack。一件很棒的作品。它还将为您提供适用于这两种情况的可运行脚本。WINDOWS和LINUX。
发布于 2013-08-15 19:20:38
您可以使用sbt-assembly创建一个包含所有依赖项的fat jar:https://github.com/sbt/sbt-assembly
https://stackoverflow.com/questions/5564690
复制相似问题