SBT 无法读取 IntelliJ 中的环境变量

SBT can't read environment variables in IntelliJ

我在 ~/.zshrc 中定义了一个新的环境变量:export JVM_XMX=-Xmx2048M。我可以验证它是否已正确设置 运行 export 命令并在列表中找到它。

现在我想在SBT中使用它。我试过这两种方法:

sys.env("JVM_XMX")

sys.env.get("JVM_XMX")

但是找不到该值或者 OptionNone。我看到的错误是:

NoSuchElementException: key not found: JVM_XMX

NoSuchElementException: None.get

我还尝试将变量添加到 IntelliJ 设置中的 SBT。我去了 Build, Execution, Deployment -> Build Tools -> sbt 并将 VM parameters 设置为 -DJVM_XMX=-Xmx2048M。没用。

有人知道如何设置 SBT 以正确使用 IntelliJ 吗?


使用的版本:

sbt 1.2.8

IntelliJ IDEA 2019.2.1

如果您希望这个 属性 成为您项目的一部分,而不仅仅是在您的解决方案中,您可以在存储库的根目录中添加一个文件名“.sbtopts”,在build.sbt 文件。 在此文件中,您可以配置 JVM 选项。 例如你可以在那里添加: -J-Xmx2048M

我找不到支持我的建议的 sbt 文档,但它对我有用:)

作为解决方法,我可以使用系统属性 (scala.sys.SystemProperties)。这是可行的,因为这是在 IntelliJ 设置中查找添加到 SBT 中的值的方法。

来自 build.sbt 的代码示例:

sys.props.get("JVM_XMX")

更新:

我终于弄清楚了真正的问题所在。我的 .bashrc 文件设置不正确(我只有 .zshrc 中的变量)。将环境变量添加到正确的 rc 文件后,问题得到解决。

我可以通过转到首选项 -> 构建、执行、部署 -> 构建工具 -> sbt,然后启用 sbt shell 进行构建和项目重新加载来解决这个问题。