2015-12-29 6 views
7

Есть ли способ определить глобальные переменные в build.gradle и сделать их доступными извне.определить глобальные переменные и функции в build.gradle

Я имею в виду что-то вроде этого

def variable = new Variable() 

def method(Project proj) { 
    def value = variable.value 
} 

Потому что, как он говорит мне, что это cannot find property. Также я хотел бы сделать то же самое для методов. Я имею в виду что-то вроде этого

def methodA() {} 
def methodB() { methodA() } 
+0

Возможно, повсюду вы имеете в виду везде в исходном коде? –

+0

Пространство имен 'ext' - это то, что вам нужно – RaGe

ответ

6

Используйте дополнительные свойства.

ext.propA = 'propAValue' 
ext.propB = propA 
println "$propA, $propB" 

def PrintAllProps(){ 
    def propC = propA 
    println "$propA, $propB, $propC" 
} 

task(runmethod) << { PrintAllProps() } 

Запуск runmethod напечатает:

gradle runmethod 
propAValue, propAValue 
:runmethod 
propAValue, propAValue, propAValue 

Подробнее о Gradle Extra Properties here.

Вы должны иметь возможность вызывать функции из функций, не делая ничего особенного:

def PrintMoreProps(){ 
    print 'More Props: ' 
    PrintAllProps() 
} 

результаты в:

More Props: propAValue, propAValue, propAValue 
Смежные вопросы