Android中如何为自定义构建变体跳过特定Gradle任务
针对Staging构建变体单独跳过Gradle任务的方案
你之前的配置全局生效的原因,是没有把任务跳过逻辑和对应构建变体做绑定,可通过以下两种方案实现需求:
方案1:通过onlyIf条件动态控制(推荐)
该方案不会彻底禁用任务,可在后续构建中动态调整执行逻辑,配置示例如下:
android.applicationVariants.all { variant -> // 替换为你自定义的任务名称 def customTask = tasks.named("yourCustomTask${variant.name.capitalize()}") customTask.configure { // 仅当变体不是Staging时执行任务 onlyIf { !variant.name.equalsIgnoreCase("staging") } } }
方案2:直接禁用Staging变体的对应任务
如果不需要动态调整,可直接将Staging变体对应的任务设为禁用状态:
android.applicationVariants.all { variant -> if (variant.name.equalsIgnoreCase("staging")) { // 替换为你自定义的任务名称 tasks.named("yourCustomTask${variant.name.capitalize()}").configure { enabled = false } } }
注意事项
- 如果你使用的是Android库模块,将代码中的
android.applicationVariants替换为android.libraryVariants - Gradle默认生成的变体关联任务会将变体名首字母大写作为后缀,如果你自定义了任务命名规则,需要对应调整任务名的匹配逻辑
内容的提问来源于stack exchange,提问作者Ankush Kapoor
相关产品推荐
相关产品推荐

