Gradle - 在buildscript依赖项中添加条件类路径

时间:2016-09-20 20:11:22

标签: android android-studio gradle android-gradle build.gradle

我已更新到Android Studio 2.2,它默认使用Gradle Plugin v2.2.0,并且更适合调试目的。出于分配目的,我仍然必须使用v2.1.3。我在考虑在项目gradle脚本中添加条件命令,但我不知道该怎么做。 以下测试工作

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        if (project.name.startsWith("X"))
        {
            classpath 'com.android.tools.build:gradle:2.1.3'
        }
        else
        {
            classpath 'com.android.tools.build:gradle:2.2.0'
        }
    }
}

但我需要它像

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        if (IS_RELEASE_VERSION)
        {
            classpath 'com.android.tools.build:gradle:2.1.3'
        }
        else
        {
            classpath 'com.android.tools.build:gradle:2.2.0'
        }
    }
}

我无法弄明白该怎么做。 提前致谢

1 个答案:

答案 0 :(得分:6)

嗯,我相信我解决了它,而且非常简单。您需要检查gradle.startParameter.taskNames属性。这是我编码的方式:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        if (gradle.startParameter.taskNames.size() > 0 && gradle.startParameter.taskNames.get(0).contains("Release"))
        {
            classpath 'com.android.tools.build:gradle:2.1.3'
        }
        else
        {
            classpath 'com.android.tools.build:gradle:2.2.0'
        }
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

到目前为止它工作正常。如果您愿意,可以更改"发布"值,一个风味变体(如果你正在使用风味)。