build.gradle文件详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xufei512/article/details/79854237


Gradle是一种依赖管理工具,基于Froovy语言,面向Java应用为主,它抛弃了基于xml的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。

apply plugin:'com.android.application'//说明module的类型,com.android.application为程序,com.android.library为库
android{
    compileSdkVersion 22//编译的SDK版本
    buildToolsVersion "22.0.1"//编译的Tools版本
    defaultConfig{
        applicationId "com.nd.famlink"//应用程序的包名
        minSdkVersion 8//支持的目标版本
        targetSdkVersion 19//支持的目标版本
        versionCode 52//版本号
        versionName "3.0.1"//版本名
    }
    sourceSets{//目录指向配置
        main{
            manifest.srcFile 'AndroidManifest.xml'//指定AndroidManifest文件
            java.srcDirs = ['src']//指定source目录
            resources.srcDirs = ['src']//指定source目录
            aidl.srcDirs = ['src']//指定source目录
            renderscript.srcDirs = ['src']//指定source目录
            res.srcDirs = ['res']//指定资源目录
            assets.srcDirs = ['assets']//指定assets目录
            jniLibs.srcDirs = ['libs']//指定lib库目录
        }
        debug.setRoot('build-types/debug')//指定debug模式的路径
        release.setRoot('build-types/release')//指定release模式的路径
    }
    signingConfigs{//签名配置
        release{//发布版签名配置
            storeFile file("fk.keystore")//密钥文件路径
            storePassword "123"//密钥文件密码
            keyAlias "fk"//key别名
            keyPassword "123"//key密码
        }
        debug{//发布版签名配置
            storeFile file("fk.keystore")//密钥文件路径
            storePassword "123"//密钥文件密码
            keyAlias "fk"//key别名
            keyPassword "123"//key密码
        }
    }
    buildType{//build类型
        release{//发布
            minifyEnabled true//混淆开启
            proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-project.txt'//指定混淆规则文件
            signingConfig signingConfigs.release//设置签名信息
        }
        release{//调试
            signingConfig signingConfigs.release//设置签名信息
        }
   
    }
    packagingOptions{//设置打包后的apk里的META-INF移除指定的文件
        exclude 'META-INF/ASL2.0'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/MANIFEST.MF'
    }
    lintOptions{//lint的相关配置
        abortOnError false//lint时候终止错误上报,防止编译的时候莫名的失败
    }
}

dependencies{
    compile fileTree(dir:'libs',exclude:['android-support*.jar'],include:['*.jar'])//编译lib目录下的.jar文件
    compile project(':Easylink')//编译附加的项目
    compile project(':ImageLibrary')
    compile project(':ImageResLibrary')
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'//编译来自Jcenter的第三方开源库
}

猜你喜欢

转载自blog.csdn.net/xufei512/article/details/79854237