Gradle常见配置结点

Gradle常见配置结点如下:

android DSL –领域特定语言(domain-specific languages,简称DSL) 

defaultConfig{}   默认配置,是ProductFlavor类型。它共享给其他ProductFlavor使用
sourceSets{ }   源文件目录设置,是AndroidSourceSet类型。
buildTypes{ }   BuildType类型
signingConfigs{ }   签名配置,SigningConfig类型
productFlavors{ }   产品风格配置,ProductFlavor类型
testOptions{ }   测试配置,TestOptions类型
aaptOptions{ }   aapt配置,AaptOptions类型
lintOptions{ }   lint配置,LintOptions类型
dexOptions{ }   dex配置,DexOptions类型
compileOptions{ }   编译配置,CompileOptions类型
packagingOptions{ }   PackagingOptions类型
jacoco{ }   JacocoExtension类型。 用于设定 jacoco版本

splits{ }   Splits类型

android { }  配置了用于 android 构建的所有参数。这是Android DSL的入口。

默认情况下,只需要配置编译目标,以及build-tools的版本。它通过compileSdkVersion和buildtoolsVersion属性来完成。


apply plugin: 'com.android.application'
//说明当前module的类型,是应用程序还是依赖库,com.android.application为应用程序,com.android.library为依赖库

android {
    //编译的SDK版本
    compileSdkVersion 24
    //编译的Tools版本(编译工具的版本) 其中包括了打包工具aapt、dx等等,这个工具的目录位于..sdk_path/build-tools/XX.XX.XX
    buildToolsVersion "24.0.1"

    //android 6.0(api 23) SDK,不再提供org.apache.http.*(只保留几个类) 但是项目中用到了,如何解决?
    useLibrary 'org.apache.http.legacy'

    dexOptions {
        //在dexOptions中有一个字段用来增加java堆内存大小:
        javaMaxHeapSize "4g"
        preDexLibraries = false
    }

    //默认配置
    defaultConfig {
        //应用程序的包名
        applicationId "com.crs.demo"
        //支持的最低版本14
        minSdkVersion 14
        //支持的目标版本22
        targetSdkVersion 22
        //版本号
        versionCode 1
        //版本名
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

        //原生
        ndk {
            abiFilters 'armeabi'
        }
    }

    // java版本
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    //签名配置
    signingConfigs {
        //发行版本签名配置
        release {
            //密钥文件路径
            storeFile file("fk.keystore")
            //密钥文件密码
            storePassword "123"
            //key别名
            keyAlias "xunpige"
            //key密码
            keyPassword "123"
        }
        //debug版本签名配置
        debug {
            storeFile file("fk.keystore")
            storePassword "123"
            keyAlias "xunpige"
            keyPassword "123"
        }
    }

    //build类型
    buildTypes {
        //发行版
        release {
            //混淆开启
            minifyEnabled true
            //指定混淆规则文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            //设置软件签名信息
            signingConfig signingConfigs.signConfig
        }
        //调试版
        debug {
            signingConfig signingConfigs.signConfig // 配置debug包的签名
        }
    }

    //为了解决:多个jar包里包含了同样的文件(NOTICE.txt),导致打包时出现相互覆盖问题。
    packagingOptions {
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/LICENSE.txt'
    }

    sourceSets {
        main {
            resources.srcDirs = ['src/main/java']
        }
    }

    // 产品风格配置
    productFlavors {
        xiaomi {}
        _360 {}
        baidu {}
        wandoujia {}
        //...添加其它渠道
    }

    productFlavors.all {
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL: name]
    }

    lintOptions {
        //执行lint检查,有任何的错误或者警告提示,都会终止构建,我们可以将其关掉。
        abortOnError false
    }
}

dependencies {
    //编译lib目录下的.jar文件
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.0.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha3'
    testCompile 'junit:junit:4.12'
    //网络请求框架
    compile 'com.squareup.okhttp:okhttp:2.4.0'
    //数据解析json框架
    compile 'com.google.code.gson:gson:2.7'
}


你可能感兴趣的:(Gradle常见配置结点)