问题标签 [sbt-assembly]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3204 浏览

scala - 使用 sbt-assembly 来自单个项目的具有不同外部依赖项的多个可执行 jar 文件

我有一个使用 build.scala 文件用 sbt 构建的单个 scala 项目。我可以使用 sbt-assembly 从该项目生成单个可执行 jar 文件,而不会出现问题。现在我想生成多个可执行的 jar 文件,其中每个文件都包含一组通用的内部和外部基本依赖项以及不同的外部依赖项。

当前版本的 sbt-assembly 可以做到这一点吗?在 maven 中这很容易,因为可以在 pom 中定义多个配置文件,每个配置文件生成一个单独的 jar,但是在 sbt-assembly 中,您将程序集设置传递给您的项目,我还没有找到一种方法来修改设置以生成多个jar文件。

0 投票
3 回答
19740 浏览

scala - 如何将 sbt-assembly 中的非托管 JAR 添加到最终的胖 JAR?

我的项目依赖于一个不在 Ivy 中的 JAR 文件,我怎样才能将它直接包含在sbt-assembly的最终 JAR 输出中?

0 投票
1 回答
939 浏览

scala - 使用 sbt-assembly 的 Scalding 和 Hadoop 的依赖性问题

我正在尝试构建一个sbt简单的 hadoop 作业,我正在尝试运行它以尝试在 Amazon EMR 上运行它。但是,当我运行时sbt assembly,出现以下错误:

我试图按照这里的建议https://groups.google.com/forum/#!topic/simple-build-tool/tzkq5TioIqM但是它没有用。

我的 build.sbt 看起来像:

0 投票
4 回答
19345 浏览

scala - 如何将“提供的”依赖项添加回运行/测试任务的类路径?

这是一个例子build.sbt

目标是拥有 spark-core "provided",因此它及其依赖项不包含在程序集工件中,而是将它们重新包含在运行时类路径中以用于run- 和 -test相关任务。

似乎使用自定义范围最终会有所帮助,但我对如何实际导致默认/全局运行/测试任务使用自定义libraryDependencies并希望覆盖默认值感到困惑。我尝试过的事情包括:

之类的无济于事。

总结一下:这感觉本质上是对 web 案例的概括,其中 servlet-api 在“提供”范围内,并且运行/测试任务通常派生一个 servlet 容器,该容器确实为运行代码提供了 servlet-api。这里唯一的区别是我没有分叉一个单独的 JVM/环境。我只想手动增加这些任务的类路径,有效地“撤消”“提供的”范围,但以一种继续从组装工件中排除依赖的方式。

0 投票
1 回答
6755 浏览

scala - sbt-assembly:如何在 src/main/webapp 中包含静态文件

我正在使用来自https://github.com/sbt/sbt-assembly的 sbtassembly 和这个合并策略:

出于某种原因,我的静态内容没有包含在可执行 jar 中,但我的 web 服务工作正常(所以它确实工作)。

如何包含我的 index.html 和 javascript 文件?

0 投票
2 回答
3460 浏览

scala - 添加一些依赖项后,sbt 组装任务运行缓慢

我对 scala 中的部署有点陌生,我配置了sbt-assembly插件,一切都运行良好。

几天前,我添加了 hadoop、spark 和其他一些依赖项,然后assembly任务变得非常慢(8 到 10 分钟),在此之前,它是 <30s。大部分时间用于生成程序集 jar(jar 需要几秒钟才能增长到 1MB)。

我观察到有很多合并冲突,这是通过first策略解决的。这会影响组装速度吗?

我已经使用了 sbt 的 -Xmx 选项(添加 -Xmx4096m),但它没有帮助。

我正在使用sbt12.4 和sbt-assembly. 任何优化此任务的建议或指示?

0 投票
2 回答
4558 浏览

jvm - 通过 SBT 组装解决创建 JAR 的依赖关系

我想创建一个大 Jar 文件。我正在尝试使用SBT ASSEMBLY我从GitHub和这个答案安装了 sbt-assembly 。当我跑的时候sbt assembly,我得到了这个错误:

为了解决这个问题,我关注了用户的 README 页面,这是他建议的代码。

即使在添加此代码之后,我也会收到之前提到的相同错误。请让我知道我错过了什么。对此错误的任何帮助将不胜感激。谢谢!

更新 2:

根据给出的链接添加排除规则,

更新 3:

我可以找到导致问题的库。

更新 4:修复

所以添加 MergeStrategy 确实解决了这个问题。即使我有很多依赖项,超过 10 个,为每个依赖项添加 MergeStrategy 单独解决了这个问题。

0 投票
2 回答
1151 浏览

scala - SBT:如何在 Sonatype 上发布聚合项目和所有模块?

我有一个 SBT 项目,我将它发布到 Sonatype 没有问题,我将它转换为一个多模块 SBT 项目。现在我想:

  • 将包含所有聚合子模块的 jar/javadoc/sources/pom 文件发布到 Sonatype(这意味着它们应该使用 sbt-pgp 插件进行签名)

  • 也将每个单独的子模块发布到 Sonatype

我尝试为此使用sbt 程序集插件,但没有成功。您是否有一个示例 Build.scala 文件可以显示完成此任务的最佳结构是什么?

0 投票
1 回答
59 浏览

scala - 发布拆分的程序集包

sbt-assembly用来发布工件。但是我已将配置拆分工件添加到代码和依赖包中。

sbt-assembly 页面上的说明提到了如何将程序集添加到发布阶段。

但是我只得到已-assembly-0.0.1-SNAPSHOT.jar发布的,而不是 - assembly-0.0.1-SNAPSHOT-deps.jar

如何添加deps.jar要发布的内容?

0 投票
2 回答
11285 浏览

apache-spark - SBT 程序集 jar 排除

我使用spark(在java API中)并且需要一个可以推送到集群的jar,但是jar本身不应该包含spark。部署作业的应用程序当然应该包括 spark。

我想:

  1. sbt run - 一切都应该被编译和执行
  2. sbt smallAssembly - 创建一个没有火花的罐子
  3. sbt assembly - 创建一个包含所有内容(包括 spark)的 uber jar,以便于部署。

我有 1. 和 3. 工作。关于我如何 2. 的任何想法?我需要将什么代码添加到我的 build.sbt 文件中?

这个问题不仅与火花有关,还与我可能希望排除的任何其他依赖关系有关。