2016-09-29 1 views
0

Meine Java-Anwendung verwendet Umgebungsvariablen (System.getenv), und dieser Satz von Variablen ist groß und in einer Datei definiert wie:IntelliJ IDEA: run/Debug-Java-Anwendung mit einer Reihe von Umgebungsvariablen

export VAR1="VAL1" 
... 
export VAR100500="VAL1500" 

wenn i die Anwendung von der Kommandozeile starten ich etwas wie folgt verwenden:

source ../.config/.secret-secret && java -jar build/libs/app-name.jar 

und die Werte werden direkt vor dem Start exportiert (tatsächlich der source Befehl darf nur einmal pro Sitzung, da die Werte exportiert ausgeführt werden)

Aber wenn ich die Anwendung von IDEA starten, werden diese Werte vernünftigerweise nicht in die Run-Umgebung exportiert.

Also, die Frage ist: Wie kann ich eine Reihe von Umgebungsvariablen in Application Launch-Umgebung in IDEA exportieren?

Also, was ich habe schon versucht:

  • in Run/Debug-Konfigurationen -> vor dem Start i ein Shell-Skript gestartet, die diese Variablen (i verwenden das gleiche Skript exportiert zu laufen die App von der Befehlszeile). Script erfolgreich ausgeführt, sieht aber wie das Skript in anderer Umgebung aus der Anwendung ausgeführt wird selbst, so dass Werte exportiert werden (und zu IDEA Laufe Konsole gedruckt), aber die Anwendung noch kann sie nicht lesen von System.getenv

  • ich kann nicht einfach Run/Debug Konfigurationen -> Umgebungsvariablen, weil es eine Menge von Variablen manuell einzurichten, auch sie sind von Zeit zu Zeit geändert werden.

  • Es ist nicht genug, ganze IDEA mit diesen Variablen auszuführen, weil, wie ich oben erwähnt habe, die Werte oft geändert werden und sollten fast jeden Start neu gelesen werden.

Antwort

0

Ich kann Ihnen sagen, dass die workspace.xml Datei bearbeiten (das ist, wo die Umgebungsvariablen in der Laufkonfiguration eingetragen gespeichert werden) direkt nicht funktioniert, so nicht die Mühe, die versuchen.

Ich denke, dass Sie ein Plugin schreiben müssen, das Ihr Skript analysiert und die Laufkonfiguration aktualisiert. Ich habe kein Plugin geschrieben, um dies selbst zu tun, also kann ich Ihnen keine umfassendere Antwort geben. Sie können das entsprechende Plugin in der Dokumentation here

sehen