与此相符:
的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
我使用“$ {}”和$(“”)语法的尝试无效,并且通常会失败:
无法在任务':app:model'上找到属性'android'。
我认为该块之外的属性访问曾经使用'apply plugin:com.android.application'而不是新模型。
由于模型是一项任务,我查了Task(参见动态属性部分)并尝试了model.property(android),但这也无效。我猜它在某处,但我无法查询属性列表。
我知道这是实验性的;任何关于在gradle源代码中查找答案的提示都将得到慷慨接受!
答案 0 :(得分:0)
原来,android。*属性作为项目的属性公开(例如project.buildTypes)。
示例:
task ptest() << {
println buildTypes.collect{it}.join('\n')
println platforms.collect{it}.join('\n')
println flavors.collect{it}.join('\n')
}
输出:
user@debian:~/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 ''