Android gradle: 所有 buildTypes 同时被执行
Android gradle: All buildTypes are getting executed at the same time
我有一个 android gradle 项目,我正在尝试为其配置 buildTypes。这是我的一部分 build.gradle
:
android {
...
buildTypes {
debug {
println("inside debug...")
}
release {
println("inside release...")
}
}
...
}
当我从终端 运行 assembleDebug 任务时,我得到的输出为:
inside debug...
inside release...
为什么要打印发布块?执行assembleDebug任务时只打印debug块,执行assembleRelease任务时只打印release块怎么办?
我对 android 和 gradle 都很陌生,所以任何帮助都会很棒。
简单的答案是:他们不是。
Gradle(这是一种简化)分两个阶段工作:配置和执行。在 configuration 阶段 whole 脚本被评估 - 这就是为什么你添加的 println
语句确实出现在输出中的原因。
要验证发布和调试任务是否都是 运行 添加以下代码:
assembleDebug << {
println 'debug run'
}
assembleRelease << {
println 'release run'
}
使用 <<
添加了一个动作,该动作将在任务为 运行 时执行。在 执行 阶段的操作是 运行。
我有一个 android gradle 项目,我正在尝试为其配置 buildTypes。这是我的一部分 build.gradle
:
android {
...
buildTypes {
debug {
println("inside debug...")
}
release {
println("inside release...")
}
}
...
}
当我从终端 运行 assembleDebug 任务时,我得到的输出为:
inside debug...
inside release...
为什么要打印发布块?执行assembleDebug任务时只打印debug块,执行assembleRelease任务时只打印release块怎么办?
我对 android 和 gradle 都很陌生,所以任何帮助都会很棒。
简单的答案是:他们不是。
Gradle(这是一种简化)分两个阶段工作:配置和执行。在 configuration 阶段 whole 脚本被评估 - 这就是为什么你添加的 println
语句确实出现在输出中的原因。
要验证发布和调试任务是否都是 运行 添加以下代码:
assembleDebug << {
println 'debug run'
}
assembleRelease << {
println 'release run'
}
使用 <<
添加了一个动作,该动作将在任务为 运行 时执行。在 执行 阶段的操作是 运行。