如何获取Android的buildToolsVersion?GitLab CI配置文件取值方法
在Android环境中访问buildToolsVersion及GitLab CI获取方案
一、Android Gradle脚本中访问buildToolsVersion
不管你是否在Gradle脚本里显式定义buildToolsVersion,Android Gradle插件(AGP)都会自动为其设置默认值(匹配当前compileSdkVersion的兼容版本),你可以直接在Gradle脚本中获取:
Groovy DSL(build.gradle)
// 在模块级build.gradle中直接打印 println "当前Build Tools版本: ${android.buildToolsVersion}" // 或者定义专门的输出任务 task printBuildToolsVersion { doLast { println android.buildToolsVersion } }
Kotlin DSL(build.gradle.kts)
// 在模块级build.gradle.kts中直接打印 println("当前Build Tools版本: ${android.buildToolsVersion}") // 或者定义专门的输出任务 tasks.register("printBuildToolsVersion") { doLast { println(android.buildToolsVersion) } }
二、在.gitlab-ci.yml中获取未显式定义的buildToolsVersion
由于Gradle中没显式定义该值,你需要通过Gradle任务输出内容,再在CI脚本中捕获:
先在模块级Gradle脚本中添加输出任务
按照上面的Groovy或Kotlin DSL示例,添加printBuildToolsVersion任务。在.gitlab-ci.yml中调用任务并捕获值
stages: - prepare get_build_tools_version: stage: prepare script: # 静默模式执行任务,仅获取输出内容 - BUILD_TOOLS_VERSION=$(./gradlew :app:printBuildToolsVersion -q) - echo "获取到Build Tools版本: $BUILD_TOOLS_VERSION" # 后续可将该变量用于其他CI步骤,比如指定构建工具版本 artifacts: reports: dotenv: build.env # 可选:将变量存入文件,供后续阶段复用
注意:
:app:是你的模块名,如果任务在根项目中可省略,或替换为实际模块路径。
内容的提问来源于stack exchange,提问作者Emre Memil
相关产品推荐
相关产品推荐

