如何避免多模块Android中的Gradle重复
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章将为大家详细讲解有关如何避免多模块Android中的Gradle重复,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。当你有一个包含许多模块的 Android
千家信息网最后更新 2025年01月21日如何避免多模块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安全错误
数据库的锁怎样保障安全
专业服务好的屏幕共享软件开发
简述数据库的两极印象
服务器系统占比
数据库文件不能导出
哇嘎画时代更新不了服务器列表
网络安全信息防控
现代水产养殖网络技术
网络安全学java吗
天津行业软件开发公司
数据库的主键是默认
深圳达众互联网科技
怎么入公安DNA数据库
预测模型软件开发
吴忠软件开发解决方案
西安虫二软件开发有限公司
申请网络安全审查
服务器出现600状态
北航计算机考研专硕网络安全
为什么服务器没有启动
网络安全技术与应用论文
软件开发加著作权费用翻倍
0.网络安全的含义是什么
mc 英雄服务器
虚拟服务器工具
直播服务器设置在哪
杭州莱凡网络技术有限公司
网络服务器安全与维护
net最好的数据库访问框架
数据库应用技术指导书
我的世界遗忘之海手机版服务器