首页 > 解决方案 > Scala sbt -D 未找到环境变量

问题描述

我正在尝试访问我的 sbt 构建文件中的环境变量。正如我所说,我使用 jvm -D 选项设置环境变量

sbt -DaccessToken=***** compile

但是scala找不到变量

 sys.env.get("accessToken").getOrElse(throw new RuntimeException("System variable 'accessToken' with the credentials is not set."))

为什么 -D 选项没有效果?如果我在 linux 中使用export设置变量,一切正常。

标签: scalasbt

解决方案


您传递的任何内容-D都不是环境变量,也不能被读取为sys.env.get.

您需要使用 Java API 来阅读它们

System.getProperty("accessToken")

其他选项是在启动 sbt 之前分配一个环境变量。例如,在 bash 中,可以这样做,但这当然取决于您的环境。

accessToken=***** sbt compile

推荐阅读