问题标签 [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 回答
69 浏览

scala - 带有命令行代码的 web 应用程序的 sbt

我想 sbt 生成两个包:

  1. WAR 文件,用于 Web 应用程序
  2. 包含命令行和批处理代码的 JAR 文件

这两个包共享许多相似的代码(业务逻辑)和依赖项,但当然 Servlet 方面仅在 WAR 中,命令行和批处理仅在 JAR 中。

我希望 JAR 自行运行,不需要外部依赖项(ala sbt-assembly)。

我怎样才能做到这一点?

0 投票
1 回答
1325 浏览

java - SBT - 有没有办法忽略 copyResources 中的重复映射?

我正在尝试使用 SBT 和 sbt-assembly 生成一个胖 jar。作为要求,我需要在 jar 中添加其他非托管资源(目录)。问题是 2 个目录中的文件具有相同的文件名和路径。因此,运行程序集会导致 copyResources 错误 - Duplicate Mappings 错误。我想要的行为是如果文件已经存在,则丢弃另一个文件。有没有办法做到这一点?这行得通吗?

这是一个解决方案吗?有更好的解决方案吗?

0 投票
2 回答
1305 浏览

scala - 运行 sbt-assembly 的应用程序时如何访问配置文件?

我目前正在使用sbt-assembly将我的 Scala 项目变成一个 jar。

在这个程序中,我有多个配置文件:

使用 sbt 或 IDE 运行程序时没有问题。

但是,当我将其作为 jar 时,应用程序找不到配置文件,因此无法启动。

有没有办法告诉sbt-assembly文件在哪里?

更新

这是我尝试访问配置文件的方式:

0 投票
2 回答
1022 浏览

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

是否可以使用sbt-assemblysbt-native-packager插件来创建一个 java 应用程序原型安装,而不是让项目 jar 及其依赖项<app>/lib只包含程序集 jar?

我已经构建了一个 Spark 应用程序,我想将程序集添加到上下文中,而不是单独添加每个 jar。

编辑:我需要为部署构建 deb 包。我希望 deb 包包含程序集而不是项目和依赖 jar。

文件系统布局应该是

sbt-native-packager 向 /usr/bin 添加了一个符号链接,这很方便但不是必需的。

0 投票
0 回答
1003 浏览

scala - 为什么在将 sbt-assembly 添加到构建后编译失败并出现 AssertionError?

(以下更新信息)

我正在sbt-assembly为现有项目添加构建配置,现在编译时出现以下错误,我无法解析(路径和名称已修改/缩写):

导致错误的接口很奇怪,因为它继承自另一个接口。删除这个继承解决了这个问题,我可以成功地构建一个工作程序集。但是,存在另一个接口,它也继承自父接口并且不会导致问题。

我的问题是为什么这能解决问题(当其他类似的例子仍然存在时),或者真正的根本问题是什么?

我正在使用一些遗留代码,我不希望仅仅为了更改构建配置而修改工作代码库。


更新

尽管这在以前非常一致地可重现,但在尝试了不同的 Scala 版本和其他配置更改之后,它发生的频率要低得多。编译时似乎发生了异常,这似乎表明这是编译器的问题(?)

为了完整起见,最终输出last root/compile:compile为:

0 投票
3 回答
4660 浏览

sbt - 如何从 sbt 程序集中排除重复的类?

我们有一种情况,其中两个依赖项具有完全相同的类(因为其中一个依赖项复制了它并包含在它们自己的源中)。

这导致sbt assembly其重复数据删除检查失败。

如何从特定 jar 中排除一个类?

0 投票
1 回答
2180 浏览

hadoop - Hadoop依赖于两个不同版本的beanutils

Hadoop 2.4.0 依赖于两个不同版本的 beanutils,导致以下错误sbt-assembly

这两个依赖项都是从 Hadoop 2.4.0 传递而来的,正如使用如何直接访问 Ivy 确认的那样,即访问依赖项报告或执行 Ivy 命令?

如何制作包含 Hadoop 2.4.0 的 sbt 组件?

更新:根据要求,这里是 build.sbt 依赖项:

之所以exclude hadoop需要,是因为 Spark 开箱即用,包含与 Hadoop 2 冲突的 Hadoop 1。

0 投票
1 回答
1411 浏览

scala - 使用来自 Scala 和 sbt 的 Maven 阴影插件

由于某些依赖项中的一些怪癖,我遇到了麻烦sbt-assembly,并且被告知人们使用 Java 并且使用 Maven 的 shade 插件取得了良好的效果。

如何为 Scala / sbt 使用 Maven 的 shade 插件?

0 投票
1 回答
1620 浏览

sbt - sbt-assembly:重命名具有合并冲突的类(阴影)

我如何告诉 sbt-assembly 保留其现有的合并/重复数据删除规则,除非两个.class文件冲突、重命名(并发出警告以便我知道)?

这是否与 Maven 中使用的阴影策略相同?

0 投票
1 回答
1402 浏览

sbt - 如何为任务生成资源?

对于我的Runtime配置,我可以定义一个额外resourceGenerator的如下:

对于该assembly任务,这不起作用:

错误信息是:

当我将 'append' 运算符<+=更改为 assignment<<=时,它不再导致任何错误,但不会调用我的资源生成器。