千家信息网

如何避免多模块Android中的Gradle重复

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关如何避免多模块Android中的Gradle重复,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。当你有一个包含许多模块的 Android
千家信息网最后更新 2026年11月01日如何避免多模块Android中的Gradle重复

这篇文章将为大家详细讲解有关如何避免多模块Android中的Gradle重复,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

当你有一个包含许多模块的 Android 项目时,你可能会发现在各个模块中的 build.gradle 文件中复制了很多 gradle 配置(通常通过复制和粘贴)。

我在互联网上阅读了各种尝试避免这种情况的方法,直到看到了这篇博客文章。这篇文章使用模块的名称来确定要应用哪些 gradle 插件以及要用于该模块的配置。

在我的多个模块项目之一中,我使用过类似的东西。然而,不同之处在于我在每个单独的模块 build.gradle 中应用了所需的插件,在根 build.config 中,我同时使用模块名称和它的属性来添加适当的共享配置。

例如,这里是根 build.gradle 中所有模块的公共共享配置:

subprojects {    afterEvaluate { project ->        if (project.hasProperty("android")) {            android {                compileSdkVersion 30                buildToolsVersion '30.0.2'                defaultConfig {                    minSdkVersion 23                    targetSdkVersion 30                }                compileOptions {                    sourceCompatibility JavaVersion.VERSION_11                    targetCompatibility JavaVersion.VERSION_11                }            }        }}

这个应用程序是一个混合的 Java 和 Kotlin 项目,所以只有一些模块使用 Kotlin。在 Kotlin 模块中,我应用了 kotlin 插件。

apply plugin: 'com.android.library'apply plugin: 'kotlin-android'

然后在根 build.gradle 中,我可以将 Kotlin 配置添加到这些模块中:

if (project.hasProperty('kotlin')) {        android {            kotlinOptions {                jvmTarget = JavaVersion.VERSION_11.toString()            }        }        dependencies {            implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'            implementation 'androidx.core:core-ktx'        }}

如果有仅适用于某些模块的通用配置,我也可以使用模块名称作为过滤器,只为这些模块添加该配置。例如对于除 app 模块之外的所有模块:

if (project.hasProperty('android') && !name.equalsIgnoreCase('app')) {      ...}

同样对于具有特定名称的模块:

if (project.hasProperty('android') && name.equalsIgnoreCase('feature-1')) {      ...}

请注意,我使用根 build.gradle 来包含通用配置以保持简单,但也有更复杂的方法,可以使用 buildSrc 目录代替。

关于"如何避免多模块Android中的Gradle重复"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

模块 配置 名称 篇文章 应用 插件 项目 文章 方法 更多 不同 不错 复杂 实用 适当 东西 内容 博客 只有 同时 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技名片 喔噻互联网科技有限公司 互联网通讯科技 互联网络科技有限公司 互联网科技公司怎么样 凡科互联网科技 致聘互联网科技 融贸通互联网科技 老年人脱离互联网科技的作文 互联网校园科技培训 恒生互联网科技指数跳水 广州新华互联网科技学校电竞方面 互联网科技大赛获奖感言 美国互联网科技实力 黑科技 体验场景 互联网大会 互联网风格科技公司名称 南京一网一红互联网科技有限公司 新氧科技和美国互联网有关系吗 互联网科技对化妆品行业 广州全民伙伴互联网科技有限公司 互联网络科技 智能科技公司是互联网公司吗 华中科技大学互联网 齐家互联网科技有限公司 盛创互联网科技有限公司 全球顶尖互联网科技公司 互联网科技大奖都有哪些公司 本届互联网博览会上的黑科技 迪庆互联网科技招生 上海钢联属于互联网科技股吗
0