Gradle 依赖管理
来源:互联网 发布:msa是什么软件啊 编辑:程序博客网 时间:2024/05/17 18:02
在Gradle中添加第三方库的依赖一直很方便,添加一条字符串就可以实现第三方库的自动下载,修改版本数字就能控制第三方库的版本。
但是好用也不能乱用,毕竟都是字符串的复制粘贴,缺乏好的管理会对一个项目的长期维护造成不必要的麻烦。比如Android的官方支持库隔一段时间就会升级,如果有很多module那么光改个版本号就很麻烦了。
我最讨厌麻烦,所以写项目的过程中摸索出了以下两种我觉得比较好的方式去管理依赖(只针对安卓工程)
控制支持库的版本
在工程根目录下的gradle.properties
文件里可以创建一个全局的常量
SUPPORT_LIBRARY_VERSION=25.3.1
添加Android支持库依赖时版本号用这个常量替代(注意用双引号)
dependencies { compile "com.android.support:appcompat-v7:${SUPPORT_LIBRARY_VERSION}" compile "com.android.support:cardview-v7:${SUPPORT_LIBRARY_VERSION}" compile "com.android.support:recyclerview-v7:${SUPPORT_LIBRARY_VERSION}" compile "com.android.support:design:${SUPPORT_LIBRARY_VERSION}"}
这样就可以简单的管理Android支持库的版本,升级支持库版本的时候只需要改一个地方就可以了。当然,这只做到了对版本号的统一管理,如果要对依赖进行彻底的集中化配置,可以参考下面的做法。
集中管理所有依赖
在Project的build.gradle
文件中引用一个外部文件
apply from: 'dependencies.gradle'
在Project的build.gradle同级目录下创建一个新的文件dependencies.gradle
,然后可以在这里创建一些外部变量
ext { supportLibraryVersion = '25.3.1' compileDependencies = [ appcompat_v7: "com.android.support:appcompat-v7:${supportLibraryVersion}", cardview_v7: "com.android.support:cardview-v7:${supportLibraryVersion}", recyclerview_v7: "com.android.support:recyclerview-v7:${supportLibraryVersion}", design: "com.android.support:design:${supportLibraryVersion}", support_v4: "com.android.support:support-v4:${supportLibraryVersion}", support_annotations:"com.android.support:support-annotations:${supportLibraryVersion}", okHttp: 'com.squareup.okhttp3:okhttp:3.3.1', gson: 'com.google.code.gson:gson:2.8.0', rxJava: 'io.reactivex.rxjava2:rxjava:2.0.8', rxAndroid: 'io.reactivex.rxjava2:rxandroid:2.0.1' ] testDependencies = [ junit: 'junit:junit:4.12', mockito: 'org.mockito:mockito-core:1.9.5', assertj: 'org.assertj:assertj-core:1.7.1', espresso: 'com.android.support.test.espresso:espresso-core:2.2.2', robolectric: 'org.robolectric:robolectric:3.1.1' ]}
然后在添加依赖时就是使用这些变量了
dependencies { def compileDependencies = rootProject.ext.compileDependencies def testDependencies = rootProject.ext.testDependencies compile compileDependencies.appcompat_v7 compile compileDependencies.rxJava testCompile testDependencies.junit testCompile testDependencies.mockito ....}
最后,以防一些新手误会,要说明下,创建一个dependencies.gradle
文件并不是必须的,你也可以直接写在Project的build.gradle
里面。我只是想分的清楚一点��
参考资料
Gradle依赖管理基础 https://docs.gradle.org/current/userguide/artifact_dependencies_tutorial.html
Gradle依赖管理 https://docs.gradle.org/current/userguide/dependency_management.html
- gradle依赖管理
- gradle -- 依赖管理
- Gradle统一依赖管理
- Gradle之依赖管理
- Gradle依赖管理
- Gradle 依赖管理
- Gradle依赖管理
- Gradle统一依赖管理
- Gradle Maven 依赖管理
- gradle学习(6)-依赖管理
- 翻译:Gradle之依赖管理
- Gradle教程-依赖管理基础
- gradle的使用,依赖管理
- Gradle for Android-管理依赖
- Gradle学习笔记 依赖管理
- Gradle for Android 依赖管理
- Spring Boot + Gradle 依赖管理
- Gradle笔记——依赖管理基础
- 针对Android的Crash监控, 崩溃分析---推荐Bugly
- 24点游戏
- RecycleView
- 练习使用innerHTML和outerHTML追加元素
- Androind 对话框 1
- Gradle 依赖管理
- C99 goto label地址实现C语言协程
- 二分查找
- android 将布局延伸到状态栏
- 推荐一份 Google 面试指南
- js中var的重复声明
- MyBatis实现单表增删改查(CURD)--修改
- android系统源码之 系统应用安装过程(下)
- ajax的使用