Android Groovy 脚本过渡为Kts脚本(2)

读取gradle.properties 到 BuildConfig

先看看gradle.properties

# -------Gradle--------
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx4g -Dfile.encoding=UTF-8
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.caching=true
# -------Build parameters--------
# Values may be overridden in CI using gradlew "-Pname=value" param
apiBaseUrl="http://ws.audioscrobbler.com/2.0/"
# Typically we shouldn't store token in public repository, however this is just a sample project, so
# we can favour convenience (app can be compiled and launched after checkout) over security (each person who
# checkouts the project must generate own api key and change app configuration before running it).
# In real-live setup this key could be provided\overriden by CI.
apiToken="70696db59158cb100370ad30a7a705c1"
# -------Kotlin--------
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official
kapt.use.worker.api=true
# Enable Compile Avoidance, which skips annotation processing if only method bodies are changed in dependencies
# To turn on Compile Avoidance we need to turn off AP discovery in compile path.
kapt.include.compile.classpath=false
# -------Android-------
android.useAndroidX=true
android.enableJetifier=true
android.nonTransitiveRClass=true

从Gradle项目属性中获取值,并将其设置为Android构建配置属性,例如:
设置中存在apiToken变量。gradle文件将作为BuildConfig进行访问。应用程序中的GRADLE_API_TOKEN。

自定义的一个比较重要的方法和Gradle提供的接口ApplicationDefaultConfig,利用kt的扩展函数

fun ApplicationDefaultConfig.buildConfigFieldFromGradleProperty(gradlePropertyName: String) {
    val propertyValue = project.properties[gradlePropertyName] as? String
    checkNotNull(propertyValue) { "Gradle property $gradlePropertyName is null" }

    val androidResourceName = "GRADLE_${gradlePropertyName.toSnakeCase()}".toUpperCase()
    buildConfigField("String", androidResourceName, propertyValue)
}
还有 67% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。
支付 ¥3.00 继续阅读

推荐阅读更多精彩内容