在单个版本中支持多个gradle版本。gradle

在单个版本中支持多个gradle版本。gradle,gradle,android-gradle-plugin,Gradle,Android Gradle Plugin,由于构建工具的原因,我的gradle文件必须与Android gradle 2.1.3和最新的Android gradle版本兼容。由于最新的Android Gradle插件引入了新的实现和api配置,并计划删除编译配置,我正在试图找到一种编写脚本的方法,它应该能够支持这两个版本。 我们的想法是使用 def _api = api 在依赖项中使用\u api而不是api 稍后我们计划添加一些代码,如 if (oldVersion) _api = compile 我已按原样尝试了此代码

由于构建工具的原因,我的gradle文件必须与Android gradle 2.1.3和最新的Android gradle版本兼容。由于最新的Android Gradle插件引入了新的
实现
api
配置,并计划删除
编译
配置,我正在试图找到一种编写脚本的方法,它应该能够支持这两个版本。 我们的想法是使用

def _api = api 
依赖项中
使用
\u api
而不是
api
稍后我们计划添加一些代码,如

if (oldVersion)
    _api = compile
我已按原样尝试了此代码,但它是无效代码。 你知道应该如何编码吗? 提前感谢

符号:

dependencies {
    api "org.example:example:1.0"
}
真的是语法糖吗

dependencies {
    add("api", "org.example:example:1.0")
}

因此,您可以通过定义
String
变量来解决这个问题,变量的值取决于Gradle版本。

工作得很好。下面是代码
def oldGradleVarion=(gradle.startParameter.taskNames.size()>0&&(gradle.startParameter.taskNames.get(0).contains(“Release”)
def\u api=oldGradeLeverion?“编译”:“api”
def\u实现=oldGradeLeverion?“编译”:“执行”
def\u compileOnly=oldGradeLeverion?“已提供”:“已编译”
def\u testImplementation=oldGradeLeverion?“testCompile”:“testImplementation”
依赖项{
`add(_实现,'com.android.support:support-v4:26.1.0')`
}