[英]How to get current flavor name in gradle task?
我需要知道 gradle 任务中的当前风格:
task getAssets(type: Copy) {
//...
def currentFlavor = getCurrentFlavor();
// ...
}
def getCurrentFlavor() {
Gradle gradle = getGradle()
String tskReqStr = gradle.getStartParameter().getTaskRequests().toString()
Pattern pattern
if (tskReqStr.contains("assemble"))
pattern = Pattern.compile("assemble(\\w+)(Release|Debug)")
else
pattern = Pattern.compile("generate(\\w+)(Release|Debug)")
Matcher matcher = pattern.matcher(tskReqStr)
if (matcher.find()) {
projectName = matcher.group(1).toLowerCase()
} else {
println "NO MATCH FOUND"
}
}
但它不起作用,因为gradle.getStartParameter().getTaskRequests().toString()
返回
[DefaultTaskExecutionRequest{args=[],projectPath='null'}]
像这样在 Gradle 中添加产品风味
flavorDimensions "environment"
productFlavors {
staging {
dimension "environment"
applicationId "com.***.***"
versionCode 1
versionName "0.0.1"
}
prod {
dimension "environment"
applicationId "io.**.**"
versionCode 1
versionName "0.0.1"
}
}
现在你可以得到这样的味道
BuildConfig.FLAVOR
在 gradle
applicationVariants.all { variant ->
variant.outputs.all {
def flavor = variant.name
def versionName = variant.versionName
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.