如何根据buildTypes自动选择不同的AAR依赖库?
实现根据BuildType自动切换AAR依赖
当然可以通过BuildType实现自动切换,下面提供两种适配你现有配置的实用方案:
方案一:直接为不同BuildType指定依赖
这是最直观的方式,利用Gradle为不同构建类型提供的专属依赖配置:
dependencies { // Release构建时使用正式版AAR releaseImplementation "com-log:libLog:0.1.0" // Debug构建时使用调试版AAR debugImplementation "com-log:libLogDbg:0.1.0" }
原理:Gradle会根据当前构建的BuildType自动匹配对应依赖。执行assembleDebug时加载debugImplementation配置的依赖,执行assembleRelease时则加载releaseImplementation的依赖,完全无需手动注释切换。
方案二:动态生成依赖坐标(统一管理版本)
如果想统一管理groupId和版本号,可以通过变量动态生成artifactId:
dependencies { def logArtifactId = gradle.startParameter.taskNames.any { it.contains('Debug') } ? 'libLogDbg' : 'libLog' implementation "com-log:${logArtifactId}:0.1.0" }
补充说明
- 确保你的
repositories块中包含mavenLocal(),因为你是通过本地Maven仓库引用发布的AAR:repositories { mavenLocal() google() mavenCentral() } - 若不想通过本地Maven发布,也可以直接跳过publishing配置,直接引用libs文件夹中的AAR:
dependencies { releaseImplementation files('libs/libLog_0_1_0.aar') debugImplementation files('libs/libLog_0_1_0_Int.aar') }
内容的提问来源于stack exchange,提问作者Seb
相关产品推荐
相关产品推荐

