【发布时间】:2021-09-30 01:09:43
【问题描述】:
我有一个项目 A,它具有所有 spark 和 hadoop 依赖项。另一个项目 B 已经创建,它需要项目 A 的代码以及它的依赖项来执行。 拥有项目 A 及其依赖项的原因是因为项目 B 可以被想象为项目 A 的扩展,具有一些附加功能和代码可重用性目的。两个项目的 scala 版本将相同。
基本上 项目 B 依赖项 =(项目 A / 项目 A 依赖项)
任何关于如何实现这一点的帮助将不胜感激。
编辑:项目 A 已发布到工件,项目 B 应该使用它,并且它的依赖项作为库工作。 如果使用非托管 jars 方法,则此方法可以正常工作,因为 jars 也存在依赖项,但是将这些作为来自工件的库不会仅生成项目代码的依赖项
【问题讨论】:
-
您可以使用 sbt 多模块设置并使模块
B依赖于模块A- 另一种方法是将项目A发布为库。 -
我确实将项目 A 发布为库,并将其导入到项目 B 中,但它没有导入项目 A 的依赖项。
-
@sa'kage 依赖默认传递导入:scala-sbt.org/1.x/docs/…
-
确保您的项目 A 的依赖项中没有
Provided。但如前所述,很高兴看到 SBT 设置以了解问题。 -
@JavierMontón 这个
Provided正是它没有按预期工作的原因。写这个作为答案。非常感谢