【问题标题】:How to set dependency scope in sbt according to profile?如何根据配置文件在 sbt 中设置依赖范围?
【发布时间】:2018-07-11 08:05:26
【问题描述】:

如何根据不同的环境在 build.sbt 中设置依赖。例如:

libraryDependencies ++= "org.apache.spark" %% "spark-core" % sparkVersion % "compile", // expected  in dev
libraryDependencies ++= "org.apache.spark" %% "spark-core" % sparkVersion % "provided", // expected in prod

有什么建议吗?

【问题讨论】:

    标签: scala sbt dependency-management


    【解决方案1】:

    您可以在系统属性中设置环境标识符,并在 build.sbt 中使用 scala 匹配来获得所需的结果。

    您的 build.sbt 应该如下所示:-

    val mode = sys.env.getOrElse("EXEC_MODE", "dev") // can be hardcoded.
    val devSparkVersion = 2.0.2
    val prodSparkVersion = 1.6.2
    
    mode match {
      case "dev"  => libraryDependencies += "org.apache.spark" %% "spark-core" % devSparkVersion
      case "prod" => libraryDependencies += "org.apache.spark" %% "spark-core" % prodSparkVersion
    }
    

    【讨论】:

      【解决方案2】:

      我从未尝试过,但根据此文档:

      http://www.scala-sbt.org/1.0/docs/Configuring-Scala.html

      如果你设置它看起来像

      autoScalaLibrary := false
      

      然后你可以使用“测试”、“编译”或“运行时”

      【讨论】:

        猜你喜欢
        • 2018-12-10
        • 1970-01-01
        • 1970-01-01
        • 2018-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-18
        • 2021-08-01
        相关资源
        最近更新 更多