我一直在开发 Android 应用程序一段时间,但意识到我仍然不知道该gradle.properties
文件的用途。
我已经阅读了一些Gradle 文档,其中解释了您可以添加配置以指定 Java 主页或内存设置。它还有什么可以用的吗?
我这种时候的主要参考通常是 Google I/O 开源应用程序,查看它的gradle.properties
文件,我可以看到它的一种用途是存储依赖版本变量,因此 Android 支持库依赖项的版本代码,例如,不需要每个都需要更新库的新版本,只需更新一个变量即可:
...
// Android support libraries.
compile "com.android.support:appcompat-v7:${android_support_lib_version}"
compile "com.android.support:cardview-v7:${android_support_lib_version}"
compile "com.android.support:design:${android_support_lib_version}"
compile "com.android.support:support-v13:${android_support_lib_version}"
compile "com.android.support:recyclerview-v7:${android_support_lib_version}"
compile "com.android.support:preference-v7:${android_support_lib_version}"
...
Google Play 服务也使用了相同的想法。
但是,在我自己的一个 Android 项目中,我一直在做类似的事情 - 我将我的版本变量放在根build.gradle
文件中,如下所示:
// Top-level build file where you can add configuration options
// common to all sub-projects/modules.
buildscript {
ext.kotlin_version = '1.0.5-2'
repositories {
...
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
...
然后我一直在我的模块中使用它,build.gradle
如下所示:
dependencies {
...
// Kotlin standard library
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
...
}
所以我想我有几个问题:
该文件还有什么
gradle.properties
用途?将外部变量用于依赖版本
gradle.properties
(如在 iosched 中)与根中的外部变量build.gradle
(如我一直在做的)有什么区别?- 如果有的话,哪种方法是首选?
- 以一种特定的方式做这件事有优点/缺点吗?