MST

星途 面试题库

面试题:Kotlin DSL与Gradle的高级配置

假设你正在开发一个多模块的Android项目,使用Kotlin DSL进行Gradle配置。现在需要在各个模块之间共享一些自定义的Gradle配置逻辑,你会如何实现?请详细阐述实现思路和关键代码片段。
42.1万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试

实现思路

  1. 创建通用配置脚本:在项目根目录创建一个.gradle.kts文件,用于存放共享的Gradle配置逻辑。
  2. 引入通用配置:在各个模块的build.gradle.kts文件中引入这个通用配置脚本。

关键代码片段

  1. 创建通用配置脚本:例如在项目根目录创建common.gradle.kts文件。
// 定义通用的依赖
fun DependencyHandlerScope.commonDependencies() {
    implementation("androidx.appcompat:appcompat:1.4.1")
    implementation("com.google.android.material:material:1.5.0")
}
  1. 在模块中引入通用配置:以app模块的build.gradle.kts为例。
plugins {
    id("com.android.application")
    kotlin("android")
}

// 引入通用配置脚本
apply(from = rootProject.file("common.gradle.kts"))

android {
    // 模块特有的Android配置
    compileSdk = 33
    defaultConfig {
        applicationId = "com.example.app"
        minSdk = 21
        targetSdk = 33
        versionCode = 1
        versionName = "1.0"
    }
}

dependencies {
    // 应用通用依赖配置
    commonDependencies()
    // 模块特有的依赖
    implementation("androidx.lifecycle:lifecycle - runtime - ktx:2.4.1")
}