私の質問は非常に直接的で理解しやすいです。
質問
Gradleでは、実行時に現在のビルドタイプを取得する方法はありますか?たとえば、アセンブルデバッグタスクを実行する場合、build.gradleファイル内のタスクは、このタスクがデバッグビルドバリアントに関連しているという事実に基づいて決定できますか?
サンプルコード
apply plugin: 'com.Android.library'
ext.buildInProgress = ""
buildscript {
repositories {
maven {
url = url_here
}
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.0.1'
}
}
configurations {
//get current build in progress here e.g buildInProgress = this.getBuildType()
}
Android {
//Android build settings here
}
buildTypes {
release {
//release type details here
}
debug {
//debug type details here
}
anotherBuildType{
//another build type details here
}
}
}
dependencies {
//dependency list here
}
repositories{
maven(url=url2_here)
}
task myTask{
if(buildInProgress=='release'){
//do something this way
}
else if(buildInProgress=='debug'){
//do something this way
}
else if(buildInProgress=='anotherBuildType'){
//do it another way
}
}
要約
myTask {}内で進行中のビルドタイプを正確に取得する方法はありますか?
applicationVariants
を解析することにより、正確なビルドタイプを取得できます。
applicationVariants.all { variant ->
buildType = variant.buildType.name // sets the current build type
}
実装は次のようになります。
def buildType // Your variable
Android {
applicationVariants.all { variant ->
buildType = variant.buildType.name // Sets the current build type
}
}
task myTask{
// Compare buildType here
}
また、 this および this 同様の回答を確認できます。
更新