android - 在哪里存储 gradle 依赖版本
问题描述
我在网上查看并遇到了两种不同的方式来存储 Android 应用程序的 gradle 版本。一个是ext 对象下gradle.properties
的根文件,另一个是根文件。build.gradle
这两个都可以从所有其他模块访问。我只是想弄清楚每个之间的区别以及推荐使用哪一个,为什么?
构建.gradle
ext {
versionName = "1.10.10"
androidGradleTools = "3.4.1"
compileSdkVersion = 29
minSdkVersion = 23
targetSdkVersion = 29
versionCode = 2
appCompat = "1.1.0-rc01"
archCore = "2.0.1"
material = "1.1.0-alpha09"
kotlinVersion = "1.3.31"
kotlinExtensions = "1.1.0-rc01"
constraintLayout = "1.1.3"
awsAuth = "2.7.4"
coordinatorLayout = "1.1.0-beta01"
eventBus = "3.1.1"
jUnit = "4.13-beta-3"
testRunner = "1.2.0"
espressoCore = "3.2.0"
annotation = "1.1.0"
lifecycleViewModel = "2.2.0-alpha02"
lifecycleExtensions = "2.2.0-alpha02"
roomVersion = "2.1.0"
retrofit = "2.6.0"
okHttp3 = "4.0.0"
firebaseCommon = "11.4.2"
crashlytics = "2.10.1"
slf4Android = "0.1.5"
butterknife = "10.1.0"
rabbitMQ = "4.11.1"
picasso = "2.5.2"
gson = "2.8.5"
javaPusher = "1.8.2"
androidVolley = "1.0.19"
multidex = "2.0.0"
googlePlayCore = "1.6.1"
volley = "1.0.19"
navController = "2.2.0-alpha01"
kotlinCoroutines = "1.1.1"
ktor_version = "1.2.3"
asyncHttp = "1.4.9"
}
gradle.properties
# Dependent library versions
android_google_gson_version=2.7
android_google_play_core_version=1.4.1
eventbus_version=3.0.0
squareup_retrofit2_version=2.1.0
squareup_ok_http_version=3.3.1
network_ok_http_logging_interceptor=3.3.1
aws_sdk_auth_core_version=2.7.4
fb_stetho_version=1.5.0
fb_sdk_version=4.37.0
picasso_lib_version=2.5.2
crashlytics_lib_version=2.9.4@aar
volley_lib_version=1.0.19
butterknife_lib_version=8.8.1
commons_io_lib_version=2.4
simbio_encryption_lib_version=1.2.0
anko_common_lib_version=0.8.3
slf_4_android_logger_version=0.1.5
解决方案
我建议您将版本号存储在ext {}
块中。它仅代表您定义的“额外属性”。
为什么不应该使用 gradle.properties?好吧,如果我们查看文档,我们可以看到 gradle.properties 应该是一个包含项目所需的更多“抽象”属性的文件。诸如 Java 主页或启用/禁用 Gradles 缓存之类的东西。在 Android 中,我们还有local.properties
文件,例如声明 Android Sdk 的路径。
因此,这些类型的属性在与声明依赖项不同的级别上处理您的项目。
因此,我建议您使用 ext 块来声明依赖版本。这也是 Android 文档的建议。
推荐阅读
- c# - 成功 selenium 登录测试到网站后的错误消息
- python - python参数有或没有值,指定与否
- apache-spark - Amazon EMR - Spark dataframe.cache() 是仅存储在核心节点中,还是也存储在任务节点中?
- c# - 使用标准库在 MVC 中记录文本文件?
- c++ - 使用 BOOST 在 2 个 TCP 套接字之间架起一座桥梁
- android - 创建新小部件时收到的共享首选项多于应有的首选项
- java - 如何通过提供 URL 来查找网站中的损坏链接,例如“www.hammacher.com”
- arrays - 如何在 Pester 中将两个数组与自定义对象进行比较
- postgresql - 如何查看 postgresql 数据库中的更改
- c# - 时间:2019-05-10 标签:c#aspx检查会话与Ajax jquery调用