我正在用bazel构建我的Java项目。我想在构建/运行时使用环境变量。根据{{3}} --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
都不起作用
我在这里弄错了吗?
答案 0 :(得分:1)
从终端启动Intellij,使其具有在bazel同步(构建)和bazel运行期间所需的环境变量。
在MacOS上,使用open
命令启动它。
$ export POSTGRES_USER=dev_user
$ open -a "IntelliJ IDEA CE"
$
如果您在命令行中提供变量,Bazel只会将变量传递给构建过程:
$ bazel build --action_env=POSTGRES_USER //...
或在.bazelrc
中指定它们:
build --action_env=POSTGRES_USER
答案 1 :(得分:0)
class Main_Frame:
def __init__(self, welk_window):
self.top_Frame = tkinter.Frame(welk_window, width = "1", height = "1")
self.top_Frame.pack()
self.Button_start = tkinter.Button(top_Frame, text = "Start", fg ="green", command=self.startMessage)
self.Button_start.pack(side=tkinter.LEFT)
self.Button_quit = tkinter.Button(top_Frame, text = "Quit", fg ="red", command=self.top_Frame.quit)
self.Button_quit.pack(side=tkinter.LEFT)
def startMessage(self):
print("Start")
仅影响构建中动作的环境,而不影响--action_env
所调用目标的环境。在命令行上以常规方式设置环境变量应该起作用:run
答案 2 :(得分:0)
Intellij bazel插件的当前版本允许您指定bazel二进制文件。您可以利用此优势为每个运行配置添加特定的环境变量。
假设您要在运行时环境中添加以下内容:
VAR1=VAL1
VAR2=VAL2
然后使用以下内容创建一个名为say bazel_custom
的文件(将/path/to/bazel
替换为bazel的正确路径)
#!/usr/bin/env bash
export VAR1=VAL1
export VAR2=VAL2
/path/to/bazel "$@"
保存文件并将其标记为可执行文件:
chmod +x bazel_custom
然后编辑Intellij bazel运行配置,并将任务特定的bazel二进制文件的路径设置为/path/to/bazel_custom
。
答案 3 :(得分:0)
您可以使用 --run_under
为 Bazel 运行命令添加前缀。这可以在 IntelliJ 运行/调试配置中用于设置环境变量。
--run_under='export VAR1=FOO VAR2=BAR && '