使用SBT为不同的库版本构建

时间:2017-01-16 10:51:40

标签: scala apache-spark sbt

我正在尝试使用SBT定位相同 Scala版本但不同版本的库来构建我的Scala源代码。我的问题是:

  1. SBT是否支持此功能? (似乎不太可能)
  2. 如果没有,有没有办法实现这一点而不会过多地破坏构建脚本?
  3. 详细说明: 我正在构建具有不同版本的Spark和其他库的集群。在这种情况下,这似乎是一种常见的用户案例。

    我找到了可能的解决方案:

    1. 使用Scala的不同次要版本,然后使用交叉构建调度不同版本的库。非常hackish。
    2. 对多个项目使用虚拟目录,将其源路径重定向到真实源目录。这似乎最有希望,但我还没有尝试过。

1 个答案:

答案 0 :(得分:0)

没有sbt不支持此功能,但如果您想这样做,则可以使用着色。 就像我想使用两个不同版本的guava一样,这两个版本由两个不同的库支持,然后使用guava着色,如:

    assemblyShadeRules in assembly := Seq(
     ShadeRule.rename("com.google.guava**" -> "shadeio.@1").inAll
    )