声明: 此文为DevWiki原创,如有转载请注明原网址: http://blog.devwiki.net/index.php/2017/01/10/one-more-android-project-common-config.html
随着工作的推进,我所在的 Android 小组负责开发的 App 也多了,有的一个项目也会有很多 module .这就产生了一个问题,如何统一这么多 module /项目的配置?
0x01 要配置什么?
根据我目前所处的环境,目前需要统一配置的有如下几项:
- SDK 版本
- Android Support 版本
- 团队自己开发的公共组件
- 引用的第三方的库
SDK 版本
因为不是所有的 App 都使用同一版本 SDK,有一部分使用了21版本,有一部分使用了23.需要分别统一.
Support 库版本
为了保证兼容性,相同 SDK 版本的 App 应使用同一版本的 Support 包
自有公共组件
为了保证稳定性,需要控制引用的公共组件的版本,不能有的使用 Beat 版本有的使用 Release 版本.
第三方库
这部分主要避免同时引用多个版本的问题,另一方面可以统一进行更新替换等.
0x02 一个项目多个 module 问题
1. 在项目的根目录创建文件 config.gradle
内容如下:
ext {
//SDK版本
compileSdkVer = 25
buildToolsVer = '25.0.2'
minSdkVer = 15
targetSdkVer = 25
//support版本
supportAppCompat = 'com.android.support:appcompat-v7:25.0.0'
supportV4 = 'com.android.support:support-v4:25.0.0'
supportDesign = 'com.android.support:design:25.0.0'
//自己的库
devWiki_log = 'net.devwiki.log:log:0.0.2'
devWiki_recycler = 'net.devwiki.recycler:recycler:0.0.1'
devWiki_common = 'net.devwiki.common:common:0.0.1'
//第三方库
butterknife = 'com.jakewharton:butterknife:8.4.0'
butterknife_annotation = 'com.jakewharton:butterknife-compiler:8.4.0'
//单元测试库
junit = 'junit:junit:4.12'
}
2. 修改各个 module 的 build.gradle 文件
比如修改 module app 的 build.gradle ,在 apply plugin: 'com.android.application'
下面添加 config.gradle
文件引用:
apply '../config.gradle'
build.gradle 全部内容如下:
apply plugin: 'com.android.application'
apply plugin: 'com.jakewharton.butterknife'
apply from: '../config.gradle'
android {
compileSdkVersion compileSdkVer
buildToolsVersion buildToolsVer
defaultConfig {
applicationId "net.devwiki.devwiki"
minSdkVersion minSdkVer
targetSdkVersion targetSdkVer
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile supportAppCompat
compile supportV4
compile supportDesign
compile devWiki_log
compile devWiki_recycler
compile devWiki_common
compile butterknife
annotationProcessor butterknife_annotation
testCompile junit
}
在上面的文件中需要配置的地方都改为使用 config.gradle 中的版本,依赖都改为直接使用名称.
0x03 统一多个项目的配置
- 本地搭建服务器,比如Tomcat服务器
http://192.168.10.22:8080
- 复制
config.gradle
文件至服务器,比如:/compile/config.gradle
- 启动Tomcat服务器
- 在各个项目的 module 的 build.gradle 中添加配置文件引用:
apply from: 'http://192.168.10.22:8080/compile/config.gradle'
完成以上步骤就可以统一配置多个项目了.
更多文章请访问 DevWiki Blog