sbt 切换运行时依赖
sbt switch dependencies for runtime
我正在开发一个使用 xgboost4j 的 spark 应用程序。
https://github.com/dmlc/xgboost/tree/master/jvm-packages
由于 jar 的本地 C 依赖性,此包需要编译为本地体系结构。但是集群的架构与开发笔记本电脑不同。当 运行 sbt assembly 通过集群中的一个时,如何替换包?或者你会建议通过 % "provided" ?
来解决这个问题吗?
为 (provided/compile) 个库使用后缀,例如:
val suffix = Option(System getProperty "provided").isDefined match {
case true => "provided"
case false => "compile"
}
libraryDependencies += "org.apache.spark" %% "spark-sql" % Spark.version % suffix
和运行 sbt -Dprovided assembly
如果您需要 uberjar 中的所有 jar
我正在开发一个使用 xgboost4j 的 spark 应用程序。 https://github.com/dmlc/xgboost/tree/master/jvm-packages
由于 jar 的本地 C 依赖性,此包需要编译为本地体系结构。但是集群的架构与开发笔记本电脑不同。当 运行 sbt assembly 通过集群中的一个时,如何替换包?或者你会建议通过 % "provided" ?
来解决这个问题吗?为 (provided/compile) 个库使用后缀,例如:
val suffix = Option(System getProperty "provided").isDefined match {
case true => "provided"
case false => "compile"
}
libraryDependencies += "org.apache.spark" %% "spark-sql" % Spark.version % suffix
和运行 sbt -Dprovided assembly
如果您需要 uberjar 中的所有 jar