gradle 在应用程序模块和库模块之间共享逻辑

s3fp2yjn  于 2023-01-26  发布在  其他
关注(0)|答案(1)|浏览(156)

我有module.gradle.kts

plugins {
    id("com.android.library")
    id("org.jetbrains.kotlin.android")
}

android {
    defaultConfig {
        ...
    }
}

app.gradle.kts

plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
}

android {
    defaultConfig {
        ...
    }
}

我希望在专用gradle文件中为app.gradle.ktsmodule.gradle.kts定义android.defaultConfig的通用配置,例如root.gradle.kts

plugins {
    // What plugin to use here since this is neither an application module nor a library module ?
    id("org.jetbrains.kotlin.android")
}

android {
    defaultConfig {
        // Common configuration to be used by app.gradle.kts and module.gradle.kts
    }
}

“com.android.application”和“com.android.library”是否有一个共同的祖先可以在那种情况下使用?

e0uiprwp

e0uiprwp1#

我在buildSrc/src/main/Extensions.kt中定义了自己的扩展函数:

import com.android.build.api.dsl.CommonExtension

fun CommonExtension<*, *, *, *>.applyRootConfiguration() {
    defaultConfig {
        // ...
    }
}

然后,我可以通过执行以下操作将其应用于应用程序或库:

android {
    applyRootConfiguration()
}

相关问题