web-dev-qa-db-fra.com

IntelliJ IDEA configuration de variable d'environnement global

Je dois utiliser une variable d'environnement dans toutes mes configurations d'exécution d'idées. J'utilise actuellement run -> edit configurations -> puis saisis les variables env dans la configuration sélectionnée. Cependant, cela est très fastidieux lorsque je dois exécuter des scénarios de test isolés car chacun crée une nouvelle configuration d'exécution et je dois entrer les variables à nouveau. 

J'ai essayé de définir les variables env dans mon système Linux à l'aide de export SOME_VAR="some value" dans divers fichiers de profil de session: /etc/profile, /etc/bash.bashrc, ~/.bashrc, ~/.profile mais intellij semble ignorer ces vars lors de l'exécution, même si je lance echo ${SOME_VAR} à partir du terminal intégré intellij, il s'affiche la sortie correcte.

J'ai également essayé d'utiliser intellij .env file plugin puis de définir SOME_VAR=some value dans le fichier .env à la racine du projet. N'a pas fonctionné non plus. 

7
Ben

J'ai trouvé une solution pour définir des variables d'environnement sur IntelliJ qui fonctionne très bien pour moi et qui est incroyablement simple. Laisse moi te montrer.

Ceci est le programme (vous pouvez le copier et le coller) que nous utilisons pour tester:

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"));
    }
} 

Ce programme charge essentiellement toutes les variables d’environnement, les affiche sur la console et essaie d’afficher une variable env. De plus, cela suppose que vous avez créé la variable MY_VAR env _ avant d'appeler IntelliJ IDEA, en procédant comme suit:

$ export MY_VAR="This is my adorable var :)"
$ idea

Veuillez noter que nous appelons IntelliJ IDEA dans le même terminal (ou session, ou fenêtre) où nous avons créé la variable d'environnement. Si vous créez la variable et appelez le IDEA à partir de l'icône, la solution ne fonctionnera pas car le IDEA créera sa propre session.

Donc, si vous l'exécutez sans la configuration correcte, vous obtiendrez quelque chose en ligne dans votre console:

 enter image description here

Remarquez que vous ne disposez que de quelques variables et que MY_VAR est null.

Voici la configuration que j'utilise pour charger les variables d'environnement:

  1. Cliquez sur "Sélectionner les configurations Exécuter/Déboguer" dans votre projet et sélectionnez "Modifier les configurations":

 enter image description here

  1. Ensuite, cliquez sur le bouton avec "..." à droite de la section "Variables d'environnement":

 enter image description here

  1. Vous verrez une pop-up. Cochez la case en bas à gauche qui porte le libellé "Inclure les variables d'environnement parent":

 enter image description here

C'est tout!!!

Si vous exécutez votre programme maintenant, vous verrez quelque chose comme ceci sur votre console:

 enter image description here

Vous pouvez voir toutes les variables d'environnement et, bien sûr, votre variable "MY_VAR", avec la bonne valeur!

Au-delà des bases

Généralement, pour des raisons de sécurité, nous ne voulons pas garder toutes les variables d'environnement visibles. Ce que nous voulons faire est de rendre ces variables visibles uniquement lorsque IntelliJ (ou notre programme) est en cours d'exécution.

Ainsi, aucune variable sensible ne doit être visible sur l'environnement ni avant d'appeler Intellij, ni après l'avoir fermé.

En outre, vous souhaitez conserver ces variables dans un fichier (généralement avec une extension .env) pour faciliter la manipulation et pour des raisons de sécurité.

Pour cela, il existe des programmes utiles (vous pouvez les utiliser sur Google), mais mon préféré est le env-cmd .

Supposons que vous avez un fichier test.env avec le contenu suivant:

MY_TEST_VAR=I live in the test.env file.

Si vous appelez IntelliJ en procédant comme suit: 

$ env-cmd test.env idea

Et éditez votre programme pour afficher "MY_TEST_VAR", et lancez-le, vous verrez ceci sur la console d'IntelliJ:

 enter image description here

Mais si vous quittez IntelliJ et recherchez votre variable, vous verrez que la var n'existe pas (vous pouvez utiliser env pour confirmer):

 enter image description here

À ce stade, j'espère que vous pourrez jouer avec vos propres solutions: créer des scripts Shell avec des variables définies à l'intérieur, tester d'autres programmes ( direnv , autoenv , etc.), etc.

Prendre plaisir!

... 

7
Almir Campos

Si Maven est utilisé, des variables d’environnement spécifiques au projet peuvent être configurées sousFichier-> Paramètres-> Construire, Exécution, Déploiement-> Construire Outils-> Maven-> Runner Celles-ci sont réutilisées à tout moment. Configuration Maven.

2
k_o_

Le problème est que IntelliJ ne "voit" pas les variables d'environnement définies dans .bashrc (à trouver également dans la réponse de CrazyCoders). Le moyen le plus simple de permettre à IntelliJ d'importer ces variables consiste à le démarrer à partir de bash, par exemple. en tapant intellij-idea-community.

0
Mat