gradle初识:主要基于在AndroidStudio下的项目场景,学习gradle。
如此,是对gradle的初步了解。
点击打开链接 gradle初识的mindMap原始文件
一、gradle构建整个项目
在AS中,新建一个Project,表示一个项目;其下可以有多个Module,即是任务,也是模块。实现一个项目下多个任务,并能够实现多版本、多渠道打包是当前应用gradle、学习gradle的动力源泉。
项目下gradle文档主要有图中几个,分别做详细说明。
1,Project#build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { //构建过程依赖的仓库 repositories { jcenter() } <pre name="code" class="html"> //构建过程依赖的仓库dependencies {
2,Module#build.gradle
apply plugin: 'com.android.application' //声明插件,这是一个Android项目【若是Android库,应该是“com.android.library”】 android { //Android构建过程需要配置参数 compileSdkVersion 22//编译版本 buildToolsVersion "22.0.1" //buildTool版本 //忽略lint错误 lintOptions { abortOnError false } //签名信息,此处配置了Release版本签名信息 signingConfigs { release { storeFile file("pdaKeyStore.jks")//文件存储位置 storePassword "12345678"//密码 keyAlias "ds365"//别名 keyPassword "12345678"//密码 } } //打包选项 packagingOptions { exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/INDEX.LIST' } defaultConfig { applicationId "com.ds365.pda" minSdkVersion 9 targetSdkVersion 22 versionCode 1 versionName "1.0" //serverDoMain:服务器域名地址 //storeUrl:仓库地址,此处可配置多个 manifestPlaceholders = [serverDoMain: "http://IP:端口号/", storeUrl : "http://IP:端口号/" ] } buildTypes { //构建版本配置,major(不能使用main),buffer,test----<span style="font-size:18px;color:#FF0000;">配置不同版本</span> release { minifyEnabled false //是否开启混淆 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } } productFlavors { // 正式站:正式服务器地址(默认), major { } // 测试站:测试服务器地址,构建版本 alpha { //测试站版AppId,清单文件中需配置Application[在类中设置变量获取]以及meta-data applicationId "com.ds365.pda.test" manifestPlaceholders = [serverDoMain: "http://IP:端口号/", storeUrl : "http://IP:端口号/" ] } } //资源设置 sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res/'] } alpha { res.srcDirs = ['src/alpha/res', 'src/alpha/res/'] } } } //模块依赖,此处是当前module的依赖,可以配置到Project#build.gradle中去,但那种方法不建议。 dependencies { //libs下有多个jar文件 <span style="color:#FF0000;"> </span> compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:22.2.0' //编译一个jar包文件 compile files('libs/xUtils-2.6.14.jar') compile files('libs/gson-2.2.1.jar') //导入maven库 compile 'com.android.support:percent:22.2.0' compile 'com.github.subchen:jetbrick-webmvc-fastjson:2.1.1' }3,gradle.properties:
配置文件,可配置签名相关信息:keystore位置,密码,keyalias等。
也可以配置本地缓存文件的位置。
4,settings.gradle:
当前文件用于配置多模块。
include ':module-a',':module-b'则实现当前项目有module-a, module-b两个模块。
二、配置自动打包环境
添加build.bat文件:
call .//gradlew.bat clean build即是执行gradle命令,也相当 与:gradlew assemble (只适用于AS中使用,更多细节需要强化)
添加RenameAndDeleteFile.bat文件,重命名必须文件并删除不必要的文件。
::修改文件名 ren .\app\build\outputs\apk\app-alpha-release.apk DS365PDA_test.apk ren .\app\build\outputs\apk\app-major-release.apk DS365PDA_major.apk ::删除冗余文件 del .\app\build\outputs\apk\app-alpha-debug.apk del .\app\build\outputs\apk\app-alpha-debug-unaligned.apk del .\app\build\outputs\apk\app-alpha-release-unaligned.apk del .\app\build\outputs\apk\app-major-debug.apk del .\app\build\outputs\apk\app-major-debug-unaligned.apk del .\app\build\outputs\apk\app-major-release-unaligned.apk