【发布时间】:2016-11-09 06:42:51
【问题描述】:
我有一个带有两个模块(典型的前端应用程序和后端)的 android 项目。我有三个build.gradle 文件,每个模块一个,根目录一个。
我构建依赖项的方式是将所有版本提取到根级别 build.gradle 中的单独变量中
ext {
// SDK and tools
MIN_SDK_VERSION = 19
TARGET_SDK_VERSION = 23
COMPILE_SDK_VERSION = 23
BUILD_TOOLS_VERSION = '24'
// app dependencies
GOOGLE_API_CLIENT_VERSION = '1.19.0'
GOOGLE_PLAY_SERVICES_VERSION = '8.4.0'
ANDROID_SUPPORT_LIB_VERSION = '23.1.0'
[...]
// backend dependencies
[...]
}
稍后在我的说应用程序build.gradle 文件中使用
dependencies {
[...]
compile(group: 'com.google.oauth-client', name: 'google-oauth-client', version: rootProject.ext.GOOGLE_API_CLIENT_VERSION)
/////////////////////////////////
// Google Play Services explicit dependency
compile(group: 'com.google.android.gms', name: 'play-services-auth', version: rootProject.ext.GOOGLE_PLAY_SERVICES_VERSION)
compile(group: 'com.google.android.gms', name: 'play-services-plus', version: rootProject.ext.GOOGLE_PLAY_SERVICES_VERSION)
[...]
/////////////////////////////////
// Local Testing
testCompile(group: 'junit', name: 'junit', version: rootProject.ext.JUNIT_VERSION)
testCompile(group: 'pl.pragmatists', name: 'JUnitParams', version: rootProject.ext.JUNIT_PARAMS_VERSION)
[...]
}
注意:我在某处的教程中发现了这个想法,我认为它非常漂亮。
但是,我正在努力跟踪哪些 lib 版本可用,哪些是可升级的等等。由于我有一个合理大小的依赖项列表,因此跟踪这些事情变得越来越困难。好奇其他人是如何解决这个问题的。谢谢。
【问题讨论】:
-
我写了gradle-versions-plugin 来检测更新。在我的项目中,我集中坐标,例如dependencies.gradle 在一个位置更新。
-
感谢 vm @BenManes 这是一个很棒的工具,我肯定会采用你的集中化,并且它比我今天拥有的更进一步——我喜欢它(我还检查了您在 github 上的其余项目,非常酷!)。您能否将此作为官方答案移动,我会将其标记为已接受?谢谢
标签: android-studio gradle android-gradle-plugin build.gradle android-build