我在网上查过,发现有两种不同的方法可以存储android应用程序的gradle版本。一个是gradle.properties
,另一个是ext对象下的根build.gradle
文件。这两者都可以从所有其他模块访问。我只是想弄清楚每一个之间的区别,哪一个是推荐使用,为什么?
build.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
2条答案
按热度按时间bksxznpy1#
我建议您将版本号存储在
ext {}
块中。它只是代表你定义的“额外属性”。为什么不应该使用gradle.properties?如果我们看一下文档,我们可以看到gradle.properties应该是一个由项目所需的更多“抽象”属性组成的文件。比如Java home或启用/禁用Gradles缓存。在Android中,我们还有
local.properties
文件,例如,它声明了Android SDK的路径。因此,这些类型的属性在与声明依赖项不同的级别上处理项目。
因此,我建议你使用ext块来声明依赖版本。这也是Android文档所推荐的。
lmvvr0a82#
所以在Gradle 8中有better way。只需在根项目的gradle文件夹中创建libs.versions.toml文件。示例文件
然后在你的build.gradle应用插件你写
并在依赖块中添加模块
您也可以从toml文件中获取版本,如。
它将给你给予一个表示版本号的字符串。为了在所有项目或子项目范围内使用它,你必须像这样引用rootProject(KotlinDSL):