Bazel 和系统环境变量

fle*_*xit 6 java intellij-idea environment-variables bazel

我正在用 bazel 构建我的 java 项目。我想在构建/运行时使用环境变量。根据文档 --action_env=APP_ENV=Development应该可以工作。

所以我做 bazel run myproject:app --action_env=APP_ENV=Development

System.getenv("APP_ENV");为空

在我的 Intellij IDE 中,我有以下内容。既不工作--action_env=APP_ENV=Development也不--action_env APP_ENV=Development工作

使用 IntelliJ

我在这里弄错了吗?

Dan*_*ite 15

您可以使用--run_under为 Bazel run 命令添加前缀。这可以在 IntelliJ 运行/调试配置中使用来设置环境变量。

--run_under='export VAR1=FOO VAR2=BAR && '
Run Code Online (Sandbox Code Playgroud)


M. *_*ard 1

从终端启动 Intellij,以便它具有 bazel 同步(构建)和 bazel 运行期间所需的环境变量。

在 MacOS 上,使用open命令启动它。

$ export POSTGRES_USER=dev_user
$ open -a "IntelliJ IDEA CE"
$
Run Code Online (Sandbox Code Playgroud)

如果您在命令行上提供变量,Bazel 只会将变量传递给构建过程:

$ bazel build --action_env=POSTGRES_USER //...
Run Code Online (Sandbox Code Playgroud)

或者在以下位置指定它们.bazelrc

build --action_env=POSTGRES_USER
Run Code Online (Sandbox Code Playgroud)