告诉 SBT 将我所有的依赖项收集在一起

发布于 2024-10-30 17:11:38 字数 128 浏览 0 评论 0原文

构建 Web 应用程序时,SBT 能够将所有 jar 依赖项收集到 WAR 文件中。

是否可以让 SBT 将我在非 Web 应用程序中依赖的所有 jar 放入一个目录中,以便我在运行应用程序时可以轻松地将它们放入我的类路径中?

When building a web application SBT is able to collect all my jar dependencies into the WAR file.

Is this possible to have SBT put all the jars I depend on in my non-web application into a directory so I can easily put them onto my class path when running the app?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

萝莉病 2024-11-06 17:11:39

是的,您可以在项目定义类中放置类似的内容:

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 和用于编译的 jar 复制到与 classes 目录相同的目录中名为 lib 的目录中。

Yes, you can put something like this in your project definition class:

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)

and run the task via collect-jars in your SBT console. This will copy the scala-library.jar and the jars used for compilation in a directory called lib in the same directory as your classes directory.

萌面超妹 2024-11-06 17:11:39

老实说,不要为 sbt 组装而烦恼。我是 scala 新手,但我对技术相当不可知论,我处理很多技术和 sbt 组装,但它并不干净。只是一个意见。

我会推荐你​​ sbt-pack。很棒的作品。它还将为您提供适用于 WINDOWS 和 LINUX 的可运行脚本。

https://github.com/xerial/sbt-pack

In my honest opinion don't bother with sbt-assembly. I'm new with scala but I'm quite technology agnostic, I handle a lot of technologies and sbt-assembly it's not clean. Just an opinion.

I would recommend you sbt-pack. Awesome piece of work. It will give you the runnable scripts as well, for both.. WINDOWS AND LINUX.

https://github.com/xerial/sbt-pack

何必那么矫情 2024-11-06 17:11:39

您可以使用 sbt-assemble 制作包含所有依赖项的 fat jar: https://github.com/sbt/ sbt 组装

You can use sbt-assembly to make a fat jar with all dependencies: https://github.com/sbt/sbt-assembly

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文