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

如何根据Gradle活跃构建变体动态引入对应Security依赖?

解决方案

你可以通过遍历项目的构建变体,根据变体名称动态匹配依赖,替代原来逐个手动声明的方式,扩展性更强:

android {
    // 保留你的其他Android配置...

    applicationVariants.all { variant ->
        def targetDependency = variant.name.contains('pentest') 
            ? 'com.demirci:security-pentest:1.0.1' 
            : 'com.demirci:security:1.0.1'
        variant.dependencies.add('implementation', targetDependency)
    }
}

代码说明

  • applicationVariants.all 会遍历所有生成的应用构建变体(包含你定义的pentest、release、uat)
  • 通过variant.name.contains('pentest')判断当前变体名称是否包含目标标识,动态选择对应的依赖坐标
  • 调用variant.dependencies.add为当前变体添加指定的implementation依赖

如果你的项目是库模块(而非应用模块),只需把applicationVariants替换为libraryVariants即可:

android {
    // 保留你的其他Android配置...

    libraryVariants.all { variant ->
        def targetDependency = variant.name.contains('pentest') 
            ? 'com.demirci:security-pentest:1.0.1' 
            : 'com.demirci:security:1.0.1'
        variant.dependencies.add('implementation', targetDependency)
    }
}

这种方式的优势在于后续新增其他变体时,只要名称规则不变,无需修改依赖配置就能自动匹配正确的依赖。

内容的提问来源于stack exchange,提问作者Ali Demirci

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 03:45:43