专门做985招聘信息的网站,贵州 网站备案,百度第三季度财报2022,网站后台生成html最近升级了Android Studio版本到Koala Feature Drop | 2024.1.2#xff0c;新建项目后发现项目配置又有变化#xff0c;默认开始使用了一个名叫 Gradle 版本目录的东西#xff0c;当然也可以称之为依赖统一配置管理#xff0c;一开始还有点陌生#xff0c;但是经过一番了解…最近升级了Android Studio版本到Koala Feature Drop | 2024.1.2新建项目后发现项目配置又有变化默认开始使用了一个名叫 Gradle 版本目录的东西当然也可以称之为依赖统一配置管理一开始还有点陌生但是经过一番了解之后发现其实看着变化挺大但总得来说还是比较容易上手当然了之前的配置方式还是可以继续使用但是官方既然推荐那么还是很有必要学习下的毕竟码农也还是要与时俱进的。
依赖统一配置管理 借助 Gradle 版本目录您能够以可扩容的方式添加和维护依赖项和插件。使用 Gradle 版本目录您可以在拥有多个模块时更轻松地管理依赖项和插件。您不必对各个 build 文件中的依赖项名称和版本进行硬编码也不必在每次需要升级依赖项时都更新每个条目而是可以创建一个包含依赖项的中央版本目录各种模块可在 Android Studio 协助下以类型安全的方式引用该目录。 上面这一段是官方的描述应该都能看明白Gradle 版本目录新项目是通过名为libs.versions.toml的文件进行配置的因此我们就先从该文件入口一步一步看看是如何配置和使用的。
依赖和插件配置方式
在项目中会多出来一个libs.versions.toml的文件该文件的存放目录在项目根目录中的gradle文件夹中其结构如下
[versions]
...[libraries]
...[plugins]
...不难看出内容结构分为三个部分其作用如下
[versions]: 定义了项目中使用的依赖项或者插件的版本变量。可以在后续代码块libraries 和 plugins 代码块中使用这些变量。
[libraries] 定义了项目中需要使用的依赖项。适用于远程二进制文件或本地库模块貌似是废话~。
[plugins]: 定义了项目中需要使用的插件。
接着让我们来用一个完整的示例来看它具体是如何配置依赖项和插件的
[versions]
agp 8.6.0
appcompat 1.6.1[libraries]
appcompat { group androidx.appcompat, name appcompat, version.ref appcompat }[plugins]
android-application { id com.android.application, version.ref agp }
这里在[versions]中配置了两个版本号变量一个是名为agp安卓gradle插件的版本为8.6.0另一个是名为appcompat依赖的版本为1.6.1。
在[libraries]中完整的配置了名为appcompat的依赖项变量等号右边大括号中的version.ref则是对[versions]配置中的appcompat版本号的引用然后group和name则是真实依赖的信息完整的配置下来的话依赖为“androidx.appcompat:appcompat:1.6.1”。
在[plugins]中完整的配置了名为android-application的插件变量等号右边大括号中version.ref则引用了[versions]中配置的agp版本号id这里就不再描述了~。
此外关于变量命名方式官方建议使用kebab case方式进行命名。 Kebab case或称为snake case的全小写版本是一种用于编写变量名、文件名和其他标识符的命名约定。在kebab case中所有的字母都是小写的并且每个单词之间用连字符-分隔。 说到这里配置这块应该都有一个大致的了解了吧如果还不明白的话可以这么认为libs.versions.toml是一个类[versions]是一个键为String值为String的公有集合[libraries]是一个键为String值为librarie对象三个变量group、name、version的公有集合[plugins]是一个键为String值为plugin对象两个变量id、version的公有集合就跟我们用java或者kotlin写代码是一样的这个类主要是用来通过这些变量和对象配置我们项目中需要引入的依赖或者插件信息后续需要使用的时候通过这里配置的信息名称引用即可可能我这个描述不不太恰当但大致意思应该就是这样。
项目中引用
插件引用
插件引用通过libs.plugins进行配置的插件变量的引用并将变量名中的下划线和短划线转换为圆点。还是以上面的例子继续插件的引入方式
根目录下的build脚本:
plugins {alias(libs.plugins.android.application) apply false
}模块下的build脚本
plugins {alias(libs.plugins.android.application)
}依赖引用
在需要添加依赖的模块中的 build 脚本中添加对依赖项别名的引用。从 build 脚本引用依赖变量时需要以libs.开头进行访问不需要包含 libraries 限定符例如
dependencies {implementation(libs.appcompat)
}版本号引用
版本号引用需要以libs.versions开头进行引用 versions版本号引用实际应该极少有使用的场景其实跟上面两个类似这里就不再举例了。
总结
以上就是本篇文章的全部内容。是不是觉得还是比较简单的通过以上内容想必有些同学也能看出来使用依赖统一配置确实好处多多特别是针对多module的项目依赖集中管理、减少重复、提高可读性。更重要的是引用简单可以显著提高依赖管理的可维护性。