【问题标题】:How to set environment variables when executing a scenario with maven?使用maven执行场景时如何设置环境变量?
【发布时间】:2021-09-27 02:35:32
【问题描述】:

我有一个使用环境变量的加特林项目:

val Feeder: String = scala.util.Properties.envOrElse("FEEDER", "sts")

当我使用 maven 运行它时,我尝试设置该变量的值,但我总是得到默认值:

$ mvn gatling:test -Dgatling.simulationClass=simulations.MySimulation -DFEEDER=something

我也尝试在执行 maven 之前在终端中设置值:

$ FEEDER=something

$ mvn gatling:test -Dgatling.simulationClass=simulations.MySimulation

但我总是得到默认值“sts”

我错过了什么吗?如何设置我想要获取的值?

【问题讨论】:

    标签: scala maven gatling


    【解决方案1】:

    您混淆了环境变量和 Java 系统属性。

    scala.util.Properties.envOrElse 是前者,-DFEEDER=something 是后者。

    请使用scala.util.Properties.propOrElsesys.props.getOrElse

    【讨论】:

    • 谢谢!我尝试使用export FEEDER=something 并且成功了......似乎在当前终端中设置值对于 Maven 来说是不够的
    • -Dfoo=bar 设置 Java 系统属性。它与 env var 无关。
    • @PabloLozano export FEEDER=something 仅在“当前终端”中设置此环境变量,对于“maven”就足够了(实际上您尝试阅读它的方式,与 maven 和对于任何 Java、Scala 甚至 Kotlin 应用程序都是一样的)。环境变量和 Java 系统属性是两个非常不同的东西。 -Dsomeproperty=somevalue 设置 java 系统属性而不是环境变量。 scala.util.Properties.envOrElse 用于环境变量; scala.util.Properties.propOrElse 用于 java 系统属性。
    • 您也可以使用java.lang.System.getenv(envVarName)java.lang.System.getProperty(propertyName)
    猜你喜欢
    • 2014-06-01
    • 1970-01-01
    • 2012-12-11
    • 2012-02-29
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    相关资源
    最近更新 更多