Gradle - 在buildscript依赖项中添加条件类路径 [英] Gradle - Add conditional classpath in buildscript dependencies

查看:446
本文介绍了Gradle - 在buildscript依赖项中添加条件类路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已更新到Android Studio 2.2,默认情况下使用Gradle Plugin v2.2.0,对于调试目的更好。为了解决问题,我仍然必须使用v2.1.3。我正在考虑在项目gradle脚本中添加一个条件命令,但我不知道如何去做。
以下测试工作

  buildscript {
存储库{
jcenter()

依赖关系{
if(project.name.startsWith(X))
{
classpath'com.android.tools.build:gradle:2.1.3'
}
else
{
classpath'com.android.tools.build:gradle:2.2.0'
}
}
}

但我需要它是类似于



< pre $ buildscript {
repositories {
jcenter()
}
依赖关系{
if(IS_RELEASE_VERSION)
{
classpath'com.android.tools.build:gradle:2.1.3'
}
else
{
classpath'com.android.tools.build:gradle :2.2.0'
}
}
}

和我无法弄清楚如何去做。
在此先感谢

解决方案

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

  buildscript {
repositories {
jcenter()
}
依赖{
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'
}
}

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


I have updated to Android Studio 2.2, which uses by default the Gradle Plugin v2.2.0, and is much better for debugging purposes. For disribution purposes, I must still use v2.1.3. I was thinking of adding a conditional command in the project gradle script, but I am not sure how to do it. The following test works

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'
        }
    }
}

But I need it to be something like

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'
        }
    }
}

and I cannot figure out how to do it. Thanks in advance

解决方案

Well, I believe I solved it, and it is very simple. You need to check the gradle.startParameter.taskNames property. Here is how I coded it:

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'
    }
}

So far it is working fine. If you prefer, you can change the "Release" value, to a flavor variant (if you are using flavors).

这篇关于Gradle - 在buildscript依赖项中添加条件类路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆