如何使用sbt交叉编译spark2和spark3?

问题描述 投票:0回答:1

在我的程序中,我需要同时为Spark2和Spark3开发程序。 所以我需要编译两次。目前的方法是使用shell脚本,就像:

./gradlew package -Pscala=2.11.8 -Pspark=2.3.2
./gradlew package -Pscala=2.12.8 -Pspark=3.3.1 

我想迁移到 SBT。可以通过交叉编译完成吗

scala sbt
1个回答
0
投票

SBT 的交叉编译主要用于针对多个 Scala 版本进行交叉编译。

如果您要编译的 Spark 的每个版本都与单个 Scala 版本相关,您可以使用 SBT 交叉编译作为一种解决方法。


更好的解决方案可能是使用“多模块”的 SBT 功能,并为每个 Spark 版本(可选地交叉编译为多个 Scala 版本)提供一个模块,共享所有(或部分)源代码+不同的库版本(如果需要)。

有很多方法可以实现这一点,如果您这样做并遇到问题,请在此处发布具体问题,我们将提供帮助。

还有 sbt-project-matrix 插件,它可以为您简化一点子模块,还可以处理交叉编译,但方式与 SBT 默认方式不同。

© www.soinside.com 2019 - 2024. All rights reserved.