代码之家  ›  专栏  ›  技术社区  ›  Cassie

从build.sbt设置的环境变量

  •  0
  • Cassie  · 技术社区  · 7 年前

    我一直在尝试直接从build.sbt文件设置环境变量,因为我需要使用这个文件中定义的程序集jar名称。所以我一直在尝试使用echo并在Scala应用程序代码的上下文中输出定义的环境变量的结果 sys.props.get("SPARK_APP_JAR_PATH")

    环境变量配置有什么问题?

        assemblyJarName in assembly := "spark_app_example_test.jar"
    
        mainClass in assembly := Some("example.SparkAppExample")
        test in assembly := {}
        fork := true
    
        val envVars = sys.props("SPARK_APP_JAR_PATH") = "/path/to/jar/file"
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   pme    7 年前

    我就是这么想的:

    lazy val dockerRepo: String = sys.props.getOrElse("DOCKER_REPO", s"bpf.docker.repo")
    

    或者用你的例子:

    lazy val envVars = sys.props.getOrElse("SPARK_APP_JAR_PATH", "/path/to/jar/file")
    

    根据文件:

    系统属性既可以作为JVM选项提供,也可以作为SBT参数提供,在这两种情况下都是-Dprop=value。以下属性影响SBT执行。

    sbt -DSPARK_APP_JAR_PATH=/path/to/jar/file

    看到了吗 https://www.scala-sbt.org/release/docs/Command-Line-Reference.html#Command+Line+Options