2016-03-20 2 views
0

Вдоль линий этого:Как получить доступ model.android свойства вне модели

build.gradle

apply plugin: 'com.android.model.application' 

model { 
    android { 
     compileSdkVersion = 19 
     ... 
    } 

    android.buildTypes { 
     debug 
     release 
    } 
    ... 
} 

//How to access model.android.buildTypes outside model? 
$(model.android.buildTypes).each { buildType -> 
    task "task$buildType" << { 
     ... 
    } 
} 

В этом документе кратко объясняет $() синтаксис в модели для доступа к другая модель.андроид. * свойства: gradle experimental

Я использую gradle 2.10

Мои попытки с «$ {}» и $ («») синтаксис не работают, и как правило, не по линии:

Не удалось найти свойство «андроида» на задачу «: приложение: модель» ,

Я считаю, что доступ к собственности за пределами этого блока использовался для работы с 'apply plugin: com.android.application' вместо новой модели.

Поскольку модель является задачей, я посмотрел Task (см. Раздел динамических свойств) и попробовал model.property (android), но это тоже не сработало. Я предполагаю, что это где-то там, но я не могу запросить список свойств.

Я понимаю, что это град-экспериментальный; любые советы о том, где искать исходный код градиента для ответа, будут любезно приняты!

ответ

0

Выключает андроид. * Свойства отображаются как свойства проекта (например, project.buildTypes).

Пример:

task ptest() << { 
    println buildTypes.collect{it}.join('\n') 
    println platforms.collect{it}.join('\n') 
    println flavors.collect{it}.join('\n') 
} 

Выход:

[email protected]:~/dev/androidinputrouter$ ./gradlew :app:ptest 
:app:ptest 
build type 'debug' 
build type 'release' 
platform 'arm64-v8a' 
platform 'armeabi' 
platform 'armeabi-v7a' 
platform 'mips' 
platform 'mips64' 
platform 'x86' 
platform 'x86_64' 
flavor '' 
Смежные вопросы