You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置使未生成APK产物时Gradle构建主动失败

方案选择结论

两边都可以实现该需求,优先在Gradle侧配置,该方案不依赖特定CI平台能力,本地构建、其他CI环境复用代码时都能统一生效,一致性更好。

Gradle侧配置实现

直接给你执行的APK打包任务追加产物校验逻辑,校验不通过直接抛出构建异常,Gradle会自动返回非0退出码,Bamboo会直接识别为构建失败,配置示例如下:

// 替换为你实际执行的打包任务名,比如assembleDebug、assembleRelease等
tasks.named("assembleRelease") {
    doLast {
        // 替换为你项目实际的APK输出路径
        def targetApk = layout.buildDirectory.file("outputs/apk/release/app-release.apk").get().asFile
        if (!targetApk.exists() || targetApk.length() == 0) {
            throw new GradleException("构建失败:未生成有效APK产物,预期路径:${targetApk.absolutePath}")
        }
    }
}

配置完成后,只要执行对应打包任务,无论运行环境是本地还是Bamboo,没生成有效APK都会直接判定构建失败。

Bamboo侧兜底方案(临时使用)

如果暂时不方便修改项目Gradle配置,可在Bamboo流水线增加校验步骤:

  • 在Gradle构建任务之后新增一个脚本任务
  • 脚本内判断APK文件是否存在,不存在则返回非0状态码,Bamboo会自动判定任务失败,Shell脚本示例:
# 替换为Bamboo工作空间内实际的APK存放路径
APK_FILE="${bamboo.build.working.directory}/app/build/outputs/apk/release/app-release.apk"
if [ ! -s "$APK_FILE" ]; then
    echo "构建异常:未检测到有效APK产物"
    exit 1
fi

该方案仅对当前Bamboo流水线生效,本地执行构建不会触发校验,仅适合临时兜底使用,长期还是建议把校验逻辑收敛到Gradle侧。

内容的提问来源于stack exchange,提问作者Alessandro Violante

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 01:09:58