我正在使用Scala(2.12.7)和SBT(1.2.7)迈出第一步。 在某个时候,我想从环境中获取秘密价值:
sys.env("SECRET_TOKEN")
问题在于,在sbt shell中未定义SECRET_TOKEN
,因此应用程序崩溃了。
所以:
$ export SECRET_TOKEN="xxx"
$ sbt
[... sbt loads]
sbt> run
[ crashes because of the env var not found ]
就像sbt shell只能获取当前环境的一部分一样。
我想念什么吗?
谢谢
答案 0 :(得分:1)
sbt
(脚本和启动器)仅启动一个奇特的java
进程,该进程应从父进程继承环境变量。
给予
$ export SECRET_TOKEN="xxx"
build.sbt
和您在run
期间的应用程序都应有权访问sys.env("SECRET_TOKEN")
。
在评论部分,Bruno建议了SECRET_TOKEN="xxx" sbt
,这显然有用,但是我不知道这与export
有何不同。
无论如何,
object Hello extends App {
println(sys.env("SECRET_TOKEN"))
}
为我工作
sbt:hello> run
[info] Running Hello
xxx