gradle初识

    gradle初识:主要基于在AndroidStudio下的项目场景,学习gradle。

    如此,是对gradle的初步了解。


    gradle初识_第1张图片

点击打开链接 gradle初识的mindMap原始文件

一、gradle构建整个项目

       在AS中,新建一个Project,表示一个项目;其下可以有多个Module,即是任务,也是模块。实现一个项目下多个任务,并能够实现多版本、多渠道打包是当前应用gradle、学习gradle的动力源泉。

gradle初识_第2张图片

      项目下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.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










你可能感兴趣的:(gradle,自动打包,gradle命令)