SBT Native Packager - 如何检索 libraryDependencies 并将它们存储为包的一部分?

Posted

技术标签:

【中文标题】SBT Native Packager - 如何检索 libraryDependencies 并将它们存储为包的一部分?【英文标题】:SBT Native Packager - How to retrieve libraryDependencies and store them as part of the package? 【发布时间】:2013-12-19 13:06:54 【问题描述】:

我最近发现了 SBT Native Packager 插件,我认为它可以帮助解决我所有的打包和部署问题。从表面上看,它看起来应该但是我有一个问题,我认为这是一个相当基本的问题; 我希望能够将所有托管依赖项从我的项目复制到我的包的 lib 目录以进行部署。

我仔细阅读了文档,但似乎没有明显的方法来做到这一点。

其中有一些说明解释了如何从项目中复制工件:

mappings in Universal <+= (packageBin in Compile) map  jar =>
  jar -> ("lib/" + jar.getName)

但我希望能够对托管依赖项执行相同操作。

我错过了什么吗?我通读了大多数关于托管依赖项的 sbt 文档,但也没有给我答案。我当然可以使用retrieveManaged := true 下载到 lib_managed 目录并从那里抓取,但感觉有点像 hack。

谁能帮忙?

詹姆斯

【问题讨论】:

【参考方案1】:

我一直在寻找解决相同问题的方法,最后发现即使您的应用程序在 scala 中,将以下内容放入我的“build.sbt”文件也可以解决问题:

packageArchetype.java_application

exportJars := true

sbtsbt-native-packagerscala

【讨论】:

截至 2015 年 7 月,此答案已过时。查看JavaAppPackaging(或JDKPackager 插件)的文档,它会自动收集依赖项。

以上是关于SBT Native Packager - 如何检索 libraryDependencies 并将它们存储为包的一部分?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 sbt-native-packager 更改通用 zip 文件名

如何使用 sbt-native-packager 创建基本项目设置

如何使用 sbt-native-packager 设置 docker 镜像名称

如何在多个项目中使用 sbt-native-packager

如何使用 sbt-native-packager 创建 Upstart Zip 包?

如何使用 sbt-assembly 和 sbt-native-packager 构建 deb 包以包含单个程序集 jar?