在sbt shell中设置环境变量

8
我希望能够在交互式的sbt shell中设置环境变量,但是我似乎找不到实现的方法。(我已经在官方的sbt文档和stackoverflow上寻找过,但没有成功)
我想要明确一点:我不想在build.sbt文件中设置这个环境变量,而是希望能够在交互式的sbt shell会话中动态地更改它,以便下一个运行的sbt命令使用这个环境变量。
例如,我希望能够在sbt shell中执行以下操作:
> set_environment_variable("foo", "foo_value")
> `mymodule`/run
> (... program runs and completes)
> set_environment_variable("foo", "another_foo_value")
> `mymodule`/run

这是可能的吗?如果可能,我该如何实现?

我不这么认为。问题在于sbt作为子进程在调用它的shell下运行,而子进程本来就不能修改父进程。 - jwvh
1
@jwvh,我实际上不想更改父shell。我只是想为在sbt shell本身中执行的未来命令设置我的环境变量的值。也许我的例子有误导性。我将稍作修改。 - Thundzz
1个回答

8
使用 sbt 0.13.15,我发现唯一有效的方法是使用 eval
> eval System.setProperty("foo", "foo_value")
> `mymodule`/run
> ...
> eval System.setProperty("foo", "another_foo_value")
> `mymodule`/run

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接