从build.sbt设置环境变量

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

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

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

这是我如何在build.sbt中定义env变量:

    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"
scala sbt environment-variables sbt-assembly
1个回答
0
投票

这就是它对我有用的方式:

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

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