Ho scritto un'attività in gradle che acquisisce una variabile di ambiente.Perché le variabili di ambiente sono sempre nulle a Gradle (solo) quando vengono eseguite da IntelliJ IDEA?
task run(type:Exec) {
def SYS_ENV = System.getenv("SYSTEM_ENV")
// do something with SYS_ENV
}
Se corro questo compito con ./gradlew :taskName
è tutto bene, ma se ho eseguito la stessa operazione da IntelliJ IDEA, (con il tasto , o dal pannello Gradle) la variabile ENV esce come
null
.
Ho provato a riavviare IntelliJ, ho anche provato l'opzione Invalidate Caches/Restart
, ma non cambia nulla.
Non IntelliJ IDEA dovrebbe eseguire lo script Gradle esattamente come lo eseguo dal comando? Cosa posso fare per prendere una variabile env da Grade in modo che lo script non fallisca quando viene eseguito il modulo IntelliJ?
EDIT: ho fatto un po 'di prove, e ho potuto fare lanchctl setenv MY_PATH MY_VALUE
lavoro, ma non è permanente, e l'aggiunta di setenv MY_PATH MY_VALUE
-/etc/lanchd.conf
non lo rende così.
Quale sistema operativo stai usando, e dove esattamente è la variabile stabilita SYSTEM_ENV? – yole
Sono su OSX Yosemite e imposto la variabile in ~/.bash_profile – doplumi
Credo che sia il tuo problema. Le variabili d'ambiente impostate in * ~/.bash_profile * non saranno disponibili per le applicazioni GUI. Vedi [questa risposta] (http://stackoverflow.com/a/588442/957630) per maggiori informazioni. –