【发布时间】:2015-12-14 17:30:53
【问题描述】:
我正处于将 android 项目迁移到 gradle 的早期阶段,使用实验性插件 0.4.0
作为构建过程的一部分,我有一些脚本应该在编译我的代码/构建 apk 之前运行。对于调试或发布版本,参数或任务本身会有所不同。
我正在努力寻找实现这一目标的直接方法。
在我弄清楚这一点时,我已将所有内容都剥离回一个简单的 hello world 项目。
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle-experimental:0.4.0'
}
}
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 23
buildToolsVersion = "23.0.2"
}
android.buildTypes {
debug {
//
}
release {
//runProguard, sign etc.
}
}
android.productFlavors {
create("free")
{
applicationId = "com.example.app.free"
versionName = "1.0-free"
}
create("full")
{
applicationId = "com.example.app.full"
versionName = "1.0-full"
}
}
}
repositories {
jcenter()
}
dependencies {
compile 'joda-time:joda-time:2.7'
}
task runScript(type: Exec) {
executable "sh"
args "-c", "echo SomeScriptHere"
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn runScript
}
task wrapper(type: Wrapper) {
gradleVersion = '2.5'
}
理想情况下,我想通过 buildType(而不是 productFlavor)区分为基于构建类型而不是生成的应用程序所需的任务。
是否可以指定任务只应在发布或调试版本上运行?
或者,是否可以根据发布或调试版本定义用于我的 runScript 任务的不同参数?
抱歉,如果我遗漏了一些明显的东西,我对使用 gradle 还是很陌生。
【问题讨论】: