Ben*_*Ben 13 intellij-idea environment-variables intellij-plugin
我需要在所有想法运行配置中使用envirnoment变量.我目前使用run - > edit configurations - > 然后在所选配置中输入env变量.然而,当我需要运行隔离的测试场景时,这非常繁琐,因为每个都创建了一个新的运行配置,我需要重新输入变量.
我试图用设置在我的Linux系统中的ENV变量export SOME_VAR="some value"在不同的会话配置文件:/etc/profile,/etc/bash.bashrc,~/.bashrc,~/.profile但似乎的IntelliJ忽略运行过程中的增值经销商,即使当我启动echo ${SOME_VAR}从的IntelliJ内置终端会显示正确的输出.
我使用也试过的IntelliJ .ENV文件的插件,然后设置SOME_VAR=some value在.env项目的根文件.也没用.
Alm*_*pos 11
我找到了一个在IntelliJ上设置环境变量的解决方案,它对我来说非常好用,并且非常简单.让我演示给你看.
这是我们用来测试的程序(你可以复制并粘贴它):
package com.javasd.intelijenv;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.format("%s=%s%n", envName, env.get(envName));
}
System.out.println("My home directory: " + System.getenv("MY_VAR"));
}
}
Run Code Online (Sandbox Code Playgroud)
该程序基本上加载所有环境变量,在控制台上显示它们,并尝试显示一个env变量.此外,它假定您在调用IntelliJ IDEA之前创建了MY_VAR env变量,方法如下:
$ export MY_VAR="This is my adorable var :)"
$ idea
Run Code Online (Sandbox Code Playgroud)
请注意,我们在创建环境变量的同一终端(或会话或窗口)中调用IntelliJ IDEA.如果您创建变量并从图标中调用IDEA,则解决方案将无法工作,因为IDEA将创建自己的会话.
因此,如果在没有正确配置的情况下运行它,您将在控制台中获得一些内容:
请注意,您只有几个变量,并且MY_VAR为空.
而已!!!
如果您现在运行程序,您将在控制台上看到类似的内容:
您可以使用正确的值查看所有环境变量,当然还有"MY_VAR"变量!
通常,出于安全原因,我们不希望保持所有环境变量可见.我们想要做的是只在IntelliJ(或我们的程序)运行时才使这些变量可见.
因此,在调用Intellij之前或关闭之后,环境中都不应该显示敏感变量.
此外,您希望将这些变量保存在文件中(通常使用.env扩展名),以便于操作和出于安全原因.
要做到这一点,有一些有用的程序(你可以谷歌他们),但我最喜欢的是env-cmd.
假设您有一个test.env文件,其中包含以下内容:
MY_TEST_VAR=I live in the test.env file.
Run Code Online (Sandbox Code Playgroud)
如果你通过这样做调用IntelliJ:
$ env-cmd test.env idea
Run Code Online (Sandbox Code Playgroud)
并编辑您的程序以显示"MY_TEST_VAR",并运行它,您将在IntelliJ的控制台上看到:
但是如果你退出IntelliJ并查找变量,你会发现var不存在(你可以env用来确认):
此时,我希望您能够使用自己的解决方案:创建内置变量的shell脚本,测试其他程序(direnv,autoenv等),等等.
请享用!
...
小智 11
在我看来,真正的问题是 Mat 所说的。如果你想从快捷方式启动 IntelliJ,那么你必须稍微编辑它:打开 .desktop 文件,并添加/bin/bash -c -i到启动命令的开头。该文件应如下所示:
[Desktop Entry]
Exec=/bin/bash -i -c "/path/to/idea/bin/idea.sh" %f
Name=IntelliJ IDEA Ultimate
Type=Application
Version=1.0
Run Code Online (Sandbox Code Playgroud)
我尝试了上面列出的各种方法,并将环境变量添加到终端配置中,并且 Maven 构建工具在某些上下文中起作用,但在其他上下文中不起作用。然后我终于在IntelliJ中找到了实际上。因为为什么只有一个环境变量配置屏幕,而您可以有多个环境变量配置屏幕,并且除了其中一个之外的所有屏幕都会出错?^_^
\n如果您编辑创建运行配置的模板,并将环境变量添加到该模板,那么它们应该包含在以该模板启动的每个后续运行配置中。
\n这对于 JUnit 模板特别有用,因为这意味着将加载所有自定义环境变量以进行单元测试,无论它们的执行范围如何(单个方法、整个测试类、整个模块)。但一般来说,如果您首先编辑模板,则此后创建的任何运行配置都将从模板继承环境变量。
\n从顶部菜单:运行\xe2\x86\x92编辑配置... \xe2\x86\x92 展开模板树 \xe2\x86\x92 (选择模板) \xe2\x86\x92环境变量: \xe2\x86 \x92(输入分号分隔的键值对列表或使用输入小部件)
\n对于自动生成的 JUnit 配置,您应该清除任何现有的配置,并让 IntelliJ 重新创建新的配置;其中每个都将使用更新后的 JUnit 模板和环境变量。
\n如果使用Maven,则可以在File-> Settings-> Build,Execution,Deployment-> Build Tools-> Maven-> Runner下配置项目特定的环境变量 。然后可以在任何Maven配置中重复使用这些变量。
小智 5
问题是,IntelliJ 没有“看到”在 .bashrc 中设置的环境变量(也可以在 CrazyCoders 的答案中找到)。启用 IntelliJ 导入这些变量的最简单方法是从 bash 启动它,例如键入 intellij-idea-community。
| 归档时间: |
|
| 查看次数: |
20110 次 |
| 最近记录: |