gradle初识

来源:互联网 发布:怎么提高网络上行速度 编辑:程序博客网 时间:2024/05/08 07:18

    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 {
//gradle插件版本
classpath 'com.android.tools.build:gradle:1.2.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}
//配置整个项目的依赖仓库【父类】allprojects { repositories { jcenter() }}

       仓库repositories声明两次,其中buildScript配置的仓库,是gradle脚本自身需要的资源;allProject下的仓库,是项目所有模块需要的资源。

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.apkren .\app\build\outputs\apk\app-major-release.apk DS365PDA_major.apk::删除冗余文件del .\app\build\outputs\apk\app-alpha-debug.apkdel .\app\build\outputs\apk\app-alpha-debug-unaligned.apkdel .\app\build\outputs\apk\app-alpha-release-unaligned.apkdel .\app\build\outputs\apk\app-major-debug.apkdel .\app\build\outputs\apk\app-major-debug-unaligned.apkdel .\app\build\outputs\apk\app-major-release-unaligned.apk










0 0
原创粉丝点击