2016-03-20 51 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" << { 
     ... 
    } 
} 

本文簡要介紹了中模型中的$()語法訪問其他model.android。*性能:gradle experimental

我使用gradle 2.10

我以「$ {}」和$(「」)語法嘗試不工作,通常的線沿線的失敗:

無法找到任務屬性「機器人」「:應用程序:模式」 。

我認爲該塊以外的屬性訪問用於使用'apply plugin:com.android.application'而不是新模型。

由於模型是一項任務,我查找了Task(請參見動態屬性部分)並嘗試了model.property(android),但那也不起作用。我猜它在那裏,但我不能查詢屬性列表。

我明白這是gradle-experimental;任何有關在何處查看gradle源代碼以獲取答案的提示都會被接受!

回答

0

原來,android。*屬性作爲項目屬性公開(例如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 ''