sbt env变量来自哪里?

puruo6ea  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(291)

我将使用scala(2.12.7)和sbt(1.2.7)迈出第一步。在某个时刻,我想从环境中获取秘密值:

sys.env("SECRET_TOKEN")

问题是,在sbt外壳中, SECRET_TOKEN 未定义,因此应用程序崩溃。
所以:

$ export SECRET_TOKEN="xxx"
$ sbt
[... sbt loads]
sbt> run
[ crashes because of the env var not found ]

就好像sbt shell只能得到当前环境的一个子集。
我错过什么了吗?
谢谢

vecaoik1

vecaoik11#

sbt (脚本+启动程序)只是启动了一个幻想 java 进程,它应该从父进程继承环境变量。
鉴于

$ export SECRET_TOKEN="xxx"

两者 build.sbt 以及你的申请 run 应该可以访问 sys.env("SECRET_TOKEN") .
在评论部分,布鲁诺建议 SECRET_TOKEN="" sbt ,这显然奏效了,但我不知道这和 export .
无论如何,

object Hello extends App {
  println(sys.env("SECRET_TOKEN"))
}

对我有用

sbt:hello> run
[info] Running Hello
xxx

相关问题