当前位置: 首页 > 知识库问答 >
问题:

为什么从IntelliJ IDEA运行时,环境变量总是空到Gradle(仅限)?

阎丰羽
2023-03-14

我在gradle中编写了一个抓取环境变量的任务。

task run(type:Exec) {
    def SYS_ENV = System.getenv("SYSTEM_ENV")
    // do something with SYS_ENV 
}

我尝试重新启动IntelliJ,我也尝试了无效缓存/重新启动选项,但没有任何变化。

IntelliJ IDEA运行Gradle脚本的方式与我从命令中运行脚本的方式不完全一样吗?如何从Grade中获取一个env变量,以便在运行表单IntelliJ时脚本不会失败?

编辑:我做了一堆试验,我可以让lanchctl setenvMY_PATHMY_VALUE

共有1个答案

壤驷麒
2023-03-14

这是一个相对较老的问题,但下面的问题对我在约塞米蒂(Yosemite)(10.10)上有效,所以在这里回答,以防其他人有这个问题。

支持启动。在约塞米蒂删除了conf。LaunchAgent可以在OSX中用于启动每个用户的进程。您可以使用这些来重新运行问题中的launchctl步骤,从而有效地持久化环境变量

>

  • 创建用户启动代理来设置变量(编辑环境变量并在终端窗口中运行以下操作)

    cat << EOF > ~/Library/LaunchAgents/user.environment.plist
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
      <dict>
        <key>Label</key>
        <string>user.environment</string>
        <key>ProgramArguments</key>
        <array>
          <string>sh</string>
          <string>-c</string>
          <string>launchctl setenv MYPATH MY_VALUE</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
      </dict>
    </plist>
    EOF
    

    重新启动mac

    参考文献:

    • 通过launchd设置环境变量。conf不再在OS X Yosemite/El Capitan/macOS Sierra中工作
    • https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html

  •  类似资料:
    • 变量是计算机系统用于保存可变值的数据类型,我们可以直接通过变量名称来提取到对应的变量值。在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录(HOME)、邮件存放位置(MAIL)等。 值得一提的是,Linux 系统中环境变量的名称一般都是大写的,这是一种约定俗成的规范。 我们可以使用 env 命令来查看到 Linux 系统中所有的环境变量,执行命令如下: [r

    • 我开发了一个注释处理器,它可以选择使用项目的来生成文件。我正在使用一个环境变量()来获取该值。 我可以在启动Maven/Gradle之前从shell中设置环境变量,但我希望构建工具在编译之前为我设置环境变量: 对于Maven,在中,我希望在启动目标之前,用的内容填充环境变量。 对于Gradle,在中,我希望在启动任务之前,用的内容填充环境变量。 我试了几个选项都没有成功。知道我怎么做吗?

    • 问题内容: 如何在Vue中访问在运行时而不是在构建过程中传递到容器的环境变量? 堆栈如下: VueCLI 3.0.5 docker Kubernetes 在stackoverflow和其他地方提出了建议的解决方案,以使用.env文件传递变量(并使用模式),但这是在构建时被烘焙到docker映像中的。 我想在运行时将变量传递给Vue,如下所示: 创建Kubernetes ConfigMap(我正确了

    • 所以我正确地设置了我的环境变量和它们的值。 如何设置环境变量,以便在命令提示符上输入它们的名称就足以运行它们的值?

    • 问题内容: 我已将SECRET_KEY值从设置文件中移出,并且在加载virtualenv时将其设置。我可以确认来自的值。 当我运行Django控制台时,它应该丢失了。因此,在首选项中,我转到“控制台”>“ Django控制台”并加载SECRET_KEY适当的值。我回到Django控制台,SECRET_KEY就在那里。 不出所料,我还无法运行manage.py Task,因为它尚未找到。因此,我进入

    • 我已经将我的值从设置文件中移出,当我加载virtualenv时,它会被设置。我可以从<code>python manage中确认该值存在。py外壳。 当我运行Django控制台时,< code>SECRET_KEY丢失了,这是应该的。因此,在首选项中,我转到控制台 正如预期的那样,我还无法运行 manage.py 任务,因为它尚未找到。所以我进入跑步 当我经营管理层时。py任务,例如,我仍然得到