2012-03-24 9 views
101

In varie attività, faccio riferimento ai barattoli nella mia cartella Inizio.In Gradle, c'è un modo migliore per ottenere variabili d'ambiente?

Esiste un modo migliore per ottenere le variabili d'ambiente di

ENV = System.getenv() 
HOME = ENV['HOME'] 

task copyToServer(dependsOn: 'jar', type: Copy) { 

from 'build/libs/' 
into HOME + "/something/plugins/" 
} 

Questo imposta $ HOME ma speravo che ho perso qualche magia dalla documentazione.

+1

essere consapevoli del fatto che, prima di variabile d'ambiente può essere visto e usato da Gradle, deve essere esportato, es. '$ export FOO = bar'. – luka5z

+0

C'è qualcosa che mi manca qui ... Devo mettere 'def HOME': Gradle 4.4.1' Project' non ha una proprietà 'HOME' o' ENV'. Potrebbe essere qualcosa che è caduto ...? –

risposta

170

Bene; anche questo funziona:

home = "$System.env.HOME" 

Non è chiaro a cosa miri.

+14

o al tuo utilizzo: in "$ {System.env.HOME}/something/plugins" – JoeG

+7

Ricorda che "$ System.env.FOO" restituisce String con valore "null", se la variabile di ambiente FOO non è definita come una variabile di ambiente di sistema. Potrebbe essere fonte di confusione poiché la registrazione di una stringa con valore "null" su console stamperà lo stesso risultato come variabile nulla. –

+1

o semplicemente home = System.env.HOME? –

67

non ho potuto ottenere la forma suggerita da @thoredge a lavorare in Gradle 1.11, ma questo funziona per me:

home = System.getenv('HOME') 

Aiuta a tenere a mente che tutto ciò che funziona in puro Java funzionerà in Gradle anche tu.

+0

Non so perché, ma ho potuto ottenere solo la versione di 'System.getenv ('HOME')' per me. L'altra versione continuava a restituire "null" – Kip

+0

Questa era una modifica di qualcun altro; Lo ripristinerò. –

+0

Hai usato virgolette singole anziché doppie per errore, forse? –

6

In Gradle Android 0.4.0 si può semplicemente fare:

println System.env.HOME 

classpath com.android.tools.build:gradle-experimental:0.4.0

+0

thoredge ha detto che 4 anni prima della tua risposta! –

Problemi correlati