【发布时间】:2017-01-28 21:39:56
【问题描述】:
我已更新到 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'
}
}
}
我不知道该怎么做。 提前致谢
【问题讨论】:
-
没有什么能让这成为可能。这里真正的问题是:为什么必须使用旧版本来发布?
-
我们在我们的版本中使用了一个附加插件,它只与 2.1.3 兼容
-
那么您可能不得不坚持使用旧版本。您不能为调试和发布版本使用不同的版本。如果它与您的 build.gradle 中的其他内容有关 - 例如库版本或某些设置 - 那么它不会成为问题。但是 buildscript 依赖项实际上是构建脚本本身的依赖项。调试和发布构建的概念是由构建脚本定义的,在加载构建脚本依赖项之前无法对其进行评估。
-
但是我可以想到一个解决方法:您可以在构建服务器上注入一个参数并在 if.xml 中使用它。在您的开发机器上,您可以将参数设置为主文件夹中 .gradle.properties 文件中的开发版本。然而,这并不是一个很好的解决方案......但它会起作用。
-
这对我不起作用,因为我使用的是同一台机器。有没有办法设置一个标志(即使我必须编辑 gradle 文件)。我尝试使用
def buildingDistributionVesrion = true;,但它在buildscripts中不起作用,因为我相信buildscripts是在定义之前处理的。
标签: android android-studio gradle android-gradle-plugin build.gradle