2016-01-08 14 views
6

Sto usando Gradle nel mio progetto. Ho un compito per fare qualche configurazione extra con la mia guerra. Ho bisogno di costruire una stringa da utilizzare nella mia attività come, diciamo che ho:Uso delle variabili nello script di build Gradle

task extraStuff{ 
    doStuff 'org.springframework:spring-web:[email protected]' 
} 

Questo funziona bene. Che cosa devo fare è definire la versione (in realtà già definito nelle proprietà del file) e utilizzare questo nel compito come:

springVersion=3.0.6.RELEASE 

task extraStuff{ 
    doStuff 'org.springframework:spring-web:${springVersion}@war' 
} 

Il mio problema è la versione primavera non è riconosciuto come variabile. Quindi, come posso passarlo all'interno della stringa?

+0

non dimenticare, si può rompere fuori così: 'doS gruppo tufo: 'org.springframework', nome: 'spring-web', versione: $ {springVersion}, ext: 'war'' –

risposta

13

Credo che il problema può fissare sulla stringa delimitatori letterali:

  1. La stringa letterali sono definiti esattamente come nella groovy così racchiuderlo tra virgolette singole o doppie (per esempio "3.0.6.RELEASE");
  2. Gstrings non vengono analizzati in stringhe di virgolette singole (sia singole '...' o triple '''...''') se ricordo correttamente;

Quindi il codice sarà:

springVersion = '3.0.6.RELEASE' //or with double quotes "..." 

task extraStuff{ 
    doStuff "org.springframework:spring-web:${springVersion}@war" 
} 
+1

Sì, stavo solo aggiungendo la stessa risposta qui :) Appena realizzato. Ho bisogno di un caffè;) Saluti. – huzeyfe

+0

Vero. Il passaggio da virgolette singole a doppie ha risolto il problema –

3

Se si sta sviluppando un Android utilizzando Gradle, per dichiarare una variabile (cioè tenendo una qualche versione dipendenze) si dovrebbe usare la parola chiave def come di seguito:

def dependsVersion = '1.2' 

dependencies { 
    compile "groupId:artifactId:${dependsVersion}" 
} 
Problemi correlati