sbt切换运行时的依赖关系

时间:2016-11-24 09:27:50

标签: apache-spark sbt sbt-assembly

我正在开发一个使用xgboost4j的spark应用程序。 https://github.com/dmlc/xgboost/tree/master/jvm-packages

由于jar的本地C依赖性,此包需要编译到本地体系结构。但是群集具有与开发笔记本电脑不同的架构。如何通过群集中的一个运行sbt程序集时替换程序包?或者你会建议通过%"提供" ?

1 个答案:

答案 0 :(得分:5)

对(提供/编译)库使用后缀,如:

val suffix = Option(System getProperty "provided").isDefined match {
    case true  => "provided"
    case false => "compile"
  }

libraryDependencies += "org.apache.spark" %% "spark-sql" % Spark.version % suffix
如果你需要你的uberjar中的所有罐子,请运行sbt -Dprovided assembly